From 7d4a239932872e9ad601c34b13e8ccaa56264ce7 Mon Sep 17 00:00:00 2001 From: Carsten Schoenert Date: Tue, 4 Aug 2020 18:06:20 +0100 Subject: [PATCH] Import thunderbird_68.11.0-3.debian.tar.xz [dgit import tarball thunderbird 1:68.11.0-3 thunderbird_68.11.0-3.debian.tar.xz] --- README.Debian | 208 + README.apparmor | 30 + README.source | 105 + account-autoconfig/riseup.net.xml | 45 + apparmor/usr.bin.thunderbird | 433 ++ calendar-google-provider.dirs | 1 + calendar-google-provider.links | 1 + changelog | 5903 +++++++++++++++++ compat | 1 + control | 1546 +++++ copyright | 3480 ++++++++++ create-lightning-l10n-tarball.sh | 249 + create-thunderbird-l10n-tarball.sh | 328 + docs | 1 + gbp.conf | 30 + lightning.links | 1 + logo/icedove/icedove.xpm | 204 + logo/icedove/icedove_icon.svg | 1756 +++++ logo/icedove/icedove_icon_plain.svg | 1438 ++++ logo/icedove/icedove_icon_profile.svg | 1959 ++++++ logo/icedove/icedove_icon_profile_plain.svg | 1606 +++++ logo/icedove/icedove_lettering.svg | 994 +++ logo/icedove/icedove_logo.svg | 2407 +++++++ logo/icedove/icedove_logo_plain.svg | 1939 ++++++ logo/icedove/license.txt | 23 + logo/thunderbird/create-pngs.sh | 13 + logo/thunderbird/mailicon128.png | Bin 0 -> 13290 bytes logo/thunderbird/mailicon16.png | Bin 0 -> 916 bytes logo/thunderbird/mailicon22.png | Bin 0 -> 1378 bytes logo/thunderbird/mailicon24.png | Bin 0 -> 1514 bytes logo/thunderbird/mailicon256.png | Bin 0 -> 31703 bytes logo/thunderbird/mailicon32.png | Bin 0 -> 2230 bytes logo/thunderbird/mailicon48.png | Bin 0 -> 3781 bytes logo/thunderbird/mailicon512.png | Bin 0 -> 75482 bytes logo/thunderbird/mailicon64.png | Bin 0 -> 5506 bytes logo/thunderbird/pre60/mailicon128.png | Bin 0 -> 19586 bytes logo/thunderbird/pre60/mailicon16.png | Bin 0 -> 1027 bytes logo/thunderbird/pre60/mailicon22.png | Bin 0 -> 1537 bytes logo/thunderbird/pre60/mailicon24.png | Bin 0 -> 1724 bytes logo/thunderbird/pre60/mailicon256.png | Bin 0 -> 48501 bytes logo/thunderbird/pre60/mailicon32.png | Bin 0 -> 2619 bytes logo/thunderbird/pre60/mailicon48.png | Bin 0 -> 4801 bytes logo/thunderbird/pre60/mailicon512.png | Bin 0 -> 117944 bytes logo/thunderbird/pre60/mailicon64.png | Bin 0 -> 7368 bytes logo/thunderbird/pre60/thunderbird.svg | 768 +++ logo/thunderbird/thunderbird.svg | 253 + mozconfig.default | 130 + mozconfig.thunderbird | 17 + ...erences-directory-for-applications-p.patch | 30 + .../Build-against-system-libjsoncpp.patch | 93 + ...when-run-time-libsqlite-is-older-tha.patch | 30 + ...lugins-if-the-MOZILLA_DISABLE_PLUGIN.patch | 24 + .../Downgrade-SQlite-version-to-3.27.2.patch | 26 + .../Make-Thunderbird-build-reproducible.patch | 31 + ...-program-name-from-the-remoting-name.patch | 21 + ...from-application-before-installation.patch | 24 + ...me-for-call-to-gdk_set_program_class.patch | 34 + .../Work-around-Debian-bug-844357.patch | 20 + ...f-with-system-bz2-was-passed-but-no-.patch | 48 + ...t-b-l-.dat-depending-on-architecture.patch | 65 + ...files-to-set-locked-prefs-with-lockP.patch | 70 + ...-__PRETTY_FUNCTION__-or-__FUNCTION__.patch | 510 ++ ...-amend-Bug-1544631-for-fixing-mips32.patch | 39 + ...confvars.sh-as-a-dependency-to-confi.patch | 42 + ...c-fails-to-compile-against-GCC-4.6-m.patch | 21 + ...ibraries-with-their-real-path-to-avo.patch | 22 + ...ch-applications-set-in-HOME-.mailcap.patch | 24 + ...nsMsgComposeAndSend-to-respect-Replo.patch | 22 + ...while-linking-on-arm-el-hf-platforms.patch | 37 + .../Avoid-using-vmrs-vmsr-on-armel.patch | 21 + ...ve-MOZ_SIGNAL_TRAMPOLINE.-r-darchons.patch | 96 + ...truct-definitions-for-user_vfp-and-u.patch | 31 + ...use-LLVM-internal-assembler-on-armhf.patch | 43 + .../Allow-ipc-code-to-build-on-GNU-hurd.patch | 22 + ...ow-ipc-code-to-build-on-GNU-kfreebsd.patch | 38 + ...urd-fixing-unsupported-platform-Hurd.patch | 224 + ...uilding-on-GNU-kFreeBSD-and-GNU-Hurd.patch | 167 + .../adding-missed-HURD-adoptions.patch | 295 + ...-fix-if-define-for-kFreeBSD-and-Hurd.patch | 60 + .../Add-m68k-support-to-Thunderbird.patch | 451 ++ ...-build-failure-with-clang-on-ppc64el.patch | 23 + .../Add-sh4-support-to-Thunderbird.patch | 559 ++ ...tion-on-alpha-for-the-url-classifier.patch | 21 + ...round-GCC-ICE-on-mips-i386-and-s390x.patch | 24 + ...ble-extensions-in-system-directories.patch | 21 + ...Set-javascript.options.showInConsole.patch | 31 + patches/series | 39 + .../sl-change-Edit-Uredi-to-CTRL-E.patch | 22 + repack.py | 204 + rules | 244 + source.filter | 448 ++ source/format | 1 + source/include-binaries | 18 + source/lintian-overrides | 30 + tests/control | 14 + tests/help.sh | 13 + tests/icudatfileTest.sh | 22 + tests/idlTest.idl | 10 + tests/idlTest.sh | 51 + tests/soSymlinkTest.sh | 22 + tests/xpcshellTest.js | 1 + tests/xpcshellTest.sh | 11 + thunderbird-l10n-all.lintian-overrides | 2 + thunderbird-wrapper-helper.sh | 429 ++ thunderbird-wrapper.sh | 264 + thunderbird.1 | 205 + thunderbird.NEWS | 87 + thunderbird.bash-completion | 65 + thunderbird.desktop | 115 + thunderbird.dirs | 13 + thunderbird.docs | 1 + thunderbird.install | 33 + thunderbird.js | 42 + thunderbird.links | 11 + thunderbird.lintian-overrides | 13 + thunderbird.maintscript | 3 + thunderbird.manpages | 1 + thunderbird.pc | 12 + thunderbird.postinst | 98 + thunderbird.prerm | 11 + vendor.js | 2 + watch | 3 + xpi-pack.sh | 89 + 123 files changed, 31878 insertions(+) create mode 100644 README.Debian create mode 100644 README.apparmor create mode 100644 README.source create mode 100644 account-autoconfig/riseup.net.xml create mode 100644 apparmor/usr.bin.thunderbird create mode 100644 calendar-google-provider.dirs create mode 100644 calendar-google-provider.links create mode 100644 changelog create mode 100644 compat create mode 100644 control create mode 100644 copyright create mode 100755 create-lightning-l10n-tarball.sh create mode 100755 create-thunderbird-l10n-tarball.sh create mode 100644 docs create mode 100644 gbp.conf create mode 100644 lightning.links create mode 100644 logo/icedove/icedove.xpm create mode 100644 logo/icedove/icedove_icon.svg create mode 100644 logo/icedove/icedove_icon_plain.svg create mode 100644 logo/icedove/icedove_icon_profile.svg create mode 100644 logo/icedove/icedove_icon_profile_plain.svg create mode 100644 logo/icedove/icedove_lettering.svg create mode 100644 logo/icedove/icedove_logo.svg create mode 100644 logo/icedove/icedove_logo_plain.svg create mode 100644 logo/icedove/license.txt create mode 100755 logo/thunderbird/create-pngs.sh create mode 100644 logo/thunderbird/mailicon128.png create mode 100644 logo/thunderbird/mailicon16.png create mode 100644 logo/thunderbird/mailicon22.png create mode 100644 logo/thunderbird/mailicon24.png create mode 100644 logo/thunderbird/mailicon256.png create mode 100644 logo/thunderbird/mailicon32.png create mode 100644 logo/thunderbird/mailicon48.png create mode 100644 logo/thunderbird/mailicon512.png create mode 100644 logo/thunderbird/mailicon64.png create mode 100644 logo/thunderbird/pre60/mailicon128.png create mode 100644 logo/thunderbird/pre60/mailicon16.png create mode 100644 logo/thunderbird/pre60/mailicon22.png create mode 100644 logo/thunderbird/pre60/mailicon24.png create mode 100644 logo/thunderbird/pre60/mailicon256.png create mode 100644 logo/thunderbird/pre60/mailicon32.png create mode 100644 logo/thunderbird/pre60/mailicon48.png create mode 100644 logo/thunderbird/pre60/mailicon512.png create mode 100644 logo/thunderbird/pre60/mailicon64.png create mode 100644 logo/thunderbird/pre60/thunderbird.svg create mode 100644 logo/thunderbird/thunderbird.svg create mode 100644 mozconfig.default create mode 100644 mozconfig.thunderbird create mode 100644 patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch create mode 100644 patches/debian-hacks/Build-against-system-libjsoncpp.patch create mode 100644 patches/debian-hacks/Don-t-error-out-when-run-time-libsqlite-is-older-tha.patch create mode 100644 patches/debian-hacks/Don-t-register-plugins-if-the-MOZILLA_DISABLE_PLUGIN.patch create mode 100644 patches/debian-hacks/Downgrade-SQlite-version-to-3.27.2.patch create mode 100644 patches/debian-hacks/Make-Thunderbird-build-reproducible.patch create mode 100644 patches/debian-hacks/Set-program-name-from-the-remoting-name.patch create mode 100644 patches/debian-hacks/Strip-version-number-from-application-before-installation.patch create mode 100644 patches/debian-hacks/Use-remoting-name-for-call-to-gdk_set_program_class.patch create mode 100644 patches/debian-hacks/Work-around-Debian-bug-844357.patch create mode 100644 patches/debian-hacks/stop-configure-if-with-system-bz2-was-passed-but-no-.patch create mode 100644 patches/debian-hacks/use-icudt-b-l-.dat-depending-on-architecture.patch create mode 100644 patches/fixes/Allow-.js-preference-files-to-set-locked-prefs-with-lockP.patch create mode 100644 patches/fixes/Bug-1531309-Don-t-use-__PRETTY_FUNCTION__-or-__FUNCTION__.patch create mode 100644 patches/fixes/Bug-1556197-amend-Bug-1544631-for-fixing-mips32.patch create mode 100644 patches/fixes/Bug-1560340-Only-add-confvars.sh-as-a-dependency-to-confi.patch create mode 100644 patches/fixes/Bug-628252-os2.cc-fails-to-compile-against-GCC-4.6-m.patch create mode 100644 patches/fixes/Load-dependent-libraries-with-their-real-path-to-avo.patch create mode 100644 patches/fixes/Properly-launch-applications-set-in-HOME-.mailcap.patch create mode 100644 patches/fixes/fix-function-nsMsgComposeAndSend-to-respect-Replo.patch create mode 100644 patches/porting-arm/Reduce-memory-usage-while-linking-on-arm-el-hf-platforms.patch create mode 100644 patches/porting-armel/Avoid-using-vmrs-vmsr-on-armel.patch create mode 100644 patches/porting-armel/Bug-1463035-Remove-MOZ_SIGNAL_TRAMPOLINE.-r-darchons.patch create mode 100644 patches/porting-armhf/Bug-1526653-Include-struct-definitions-for-user_vfp-and-u.patch create mode 100644 patches/porting-armhf/Don-t-use-LLVM-internal-assembler-on-armhf.patch create mode 100644 patches/porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-hurd.patch create mode 100644 patches/porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-kfreebsd.patch create mode 100644 patches/porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch create mode 100644 patches/porting-kfreebsd-hurd/LDAP-support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch create mode 100644 patches/porting-kfreebsd-hurd/adding-missed-HURD-adoptions.patch create mode 100644 patches/porting-kfreebsd-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-Hurd.patch create mode 100644 patches/porting-m68k/Add-m68k-support-to-Thunderbird.patch create mode 100644 patches/porting-ppc64el/work-around-a-build-failure-with-clang-on-ppc64el.patch create mode 100644 patches/porting-sh4/Add-sh4-support-to-Thunderbird.patch create mode 100644 patches/porting/Disable-optimization-on-alpha-for-the-url-classifier.patch create mode 100644 patches/porting/Work-around-GCC-ICE-on-mips-i386-and-s390x.patch create mode 100644 patches/prefs/Don-t-auto-disable-extensions-in-system-directories.patch create mode 100644 patches/prefs/Set-javascript.options.showInConsole.patch create mode 100644 patches/series create mode 100644 patches/thunderbird-l10n/sl-change-Edit-Uredi-to-CTRL-E.patch create mode 100755 repack.py create mode 100755 rules create mode 100644 source.filter create mode 100644 source/format create mode 100644 source/include-binaries create mode 100644 source/lintian-overrides create mode 100644 tests/control create mode 100755 tests/help.sh create mode 100755 tests/icudatfileTest.sh create mode 100644 tests/idlTest.idl create mode 100755 tests/idlTest.sh create mode 100755 tests/soSymlinkTest.sh create mode 100644 tests/xpcshellTest.js create mode 100755 tests/xpcshellTest.sh create mode 100644 thunderbird-l10n-all.lintian-overrides create mode 100644 thunderbird-wrapper-helper.sh create mode 100755 thunderbird-wrapper.sh create mode 100644 thunderbird.1 create mode 100644 thunderbird.NEWS create mode 100644 thunderbird.bash-completion create mode 100644 thunderbird.desktop create mode 100644 thunderbird.dirs create mode 100644 thunderbird.docs create mode 100755 thunderbird.install create mode 100644 thunderbird.js create mode 100644 thunderbird.links create mode 100644 thunderbird.lintian-overrides create mode 100644 thunderbird.maintscript create mode 100644 thunderbird.manpages create mode 100644 thunderbird.pc create mode 100644 thunderbird.postinst create mode 100644 thunderbird.prerm create mode 100644 vendor.js create mode 100644 watch create mode 100755 xpi-pack.sh diff --git a/README.Debian b/README.Debian new file mode 100644 index 0000000000..c00b4a7192 --- /dev/null +++ b/README.Debian @@ -0,0 +1,208 @@ +WebExtension AddOn interface in Thunderbird >= 68.0 +--------------------------------------------------- + +Starting with version 68.0 the only supported interface for AddOns is the +WebExtension interface. No old XUL-based, sometimes called legacy AddOns will +work anymore. + +This sentence is not only true for Debian packaged extensions but also for +previously pulled AddOns from addons.thunderbird.net or some other external +resources. +If you encounter any incompatible packaged AddOns please open a bug report for +the package, if not already a bug report is created. + +If you are developing own WebExtension based AddOns you might help to migrate +other still not ready to use AddOns. Help is really appreciated in any way. + +The API documentation of WebExtension can be found here. + + https://thunderbird-webextensions.readthedocs.io/en/68 + +Some guideline how to migrate to WebExtension from a Legacy AddOn you will +find here. + + https://developer.thunderbird.net/add-ons/tb68 + + -- Carsten Schoenert Son, 6 Oct 2014 9:47:00 +0200 + +De-Branding of Icedove, Reintroduce Thunderbird in Debian +--------------------------------------------------------- + +Debian and Mozilla has done some new rethinking and talking about the old legal +questions about trademark issues [1]. +Based on this revaluation the Debian project got now an agreement from Mozilla +Corp. that the rebranded packages Iceweasel, Debian rebranded version for +Firefox, and Icedove, Debian rebranded version for Thunderbird are no longer +needed. + +The maintainers of the Iceweasel package followed that agreement and did a +de-branding of Iceweasel back to Firefox. More information on this process can +be found on [1]. +For Icedove the maintainers followed too the new agreement and remove the old +branding after almost 10 years for Icedove and Iceowl-Extension and switched +back to the official branding from Mozilla. The according bug for this process +can be found under [2]. + +For versions greater 1:45.6.0-2 the following packages were introduced as a +replacement. + +old package .... --> new package usage +--------------------------------------------------------------------------------- +icedove ........ --> thunderbird (Thunderbird Main application) +icedove-dev .... --> thunderbird-dev (Thunderbird Development files) +icedove-dbg .... --> thunderbird-dbg (Thunderbird with debugging symbols) +iceowl-extension --> lightning (Lightning, aka Calendar for Thunderbird) +icedove-l10n-* . --> thunderbird-l10n-* (l10n localization for Thunderbird) +iceowl-l10n-* .. --> lightning-l10n-* (l10n localization for Lightning) + +The old packages were changed to transitional packages and can be safely +removed after the automatically installation of the new packages. + += Profile Migration = +===================== + +Due the removing of the rebranding for Icedove Thunderbird will use the default +profile folder $HOME/.thunderbird for storing all the various user related +stuff! +With the new Thunderbird packages there is a wrapper script included, placed as +/usr/bin/thunderbird that will do a adoption of the existing profile folder +$HOME/.icedove into the new default folder for the user profile +$HOME/.thunderbird by setting up a symlink to the existing profile if possible. + +The automatism in the script will check the following parts: + + 1. Check if there is a folder or a symbolic link $HOME/.icedove existing and + there is NO folder or symbolic link $HOME/.thunderbird. + + 2. Create a symlink from $HOME/.thunderbird to $HOME/.icedove . + + 3. Fixing Mime type registration for' http(s)' and 'file' inside mimeTypes.rdf + if they registered for iceweasel. Before starting the fixup a backup will + be created name $FILE.backup_thunderbird_migration-${DATE}. + + 4. Also check for desktop type registrations of 'userapp-icedove*.desktop' in + '$HOME/.config/mimeapps.list' and $HOME/.local/share/applications/mimeapps.list, + but only if this file exists, users of tiling window managers won't have + this file. Read further for more information on this. + Like above, a backup of the existing file with same schema will be created + if needed. + + 7. If all was going well, starting Thunderbird. + + 8. If there is no folder $HOME/.icedove or $HOME/.thunderbird exists the + wrapper script will start Thunderbird without any extra action. + + 9. The above steps from 3.) will be also done if you already have a symlink + $HOME/.thunderbird that is pointing to $HOME/.icedove or the opposite, + $HOME/.thunderbird is pointing to $HOME/.icedove. + + So if you don't have one of the following four cases the wrapper script + will exit with a error message. + + 1. $HOME/.icedove is existing and holds valid profile data + 2. $HOME/.thunderbird points to $HOME/.icedove and 1. is true + 3. $HOME/.icedove points to $HOME/.thunderbird and 1. is true + 4. $HOME/.thunderbird is existing and holds valid profile data + (Note: Not the script, but Thunderbird will error out here if no + profiles are found!) + +If there is anything going wrong there will be splash screens displayed with +some additional notes, the logger mechanism will write some information about +what's going wrong into /var/log/syslog. + +So don't panic if there is something not working automatically. If the starter +script can't do the adoptions you will need to look by yourself and solve the +situation. Mostly there can be already a folder or symlink $HOME/.thunderbird +that prevents a automatic migration by the script. In such a case save a +existing folder $HOME/.thunderbird else where if needed and restart the +Thunderbird application. Other things like extra special mountpoints by the +system administrator can't also be handled by the script. Please ask the +service desk if you have trouble then. + +What else can you do? +You can call '/usr/bin/thunderbird --verbose' from a command line to see a +verbose output of the wrapper script. For more options of the wrapper script +and how to use them call '/usr/bin/thunderbird --help'. + +The Debian wiki is holding also extra information about the migration of +Icedove to Thunderbird. + + https://wiki.debian.org/Thunderbird + +For backward compatibility whithin the Stretch release there will be that +migration functionality until the release of Buster (aka Debian 10). +Afterwards you can still do this on your on by moving the folders manually. + += Avoid the pop-up information about migration globally = +========================================================= + +Within some use cases (e.g. bigger company environments) it can sometimes not +be useful that a user will see the dialogue window about the profile migration +as this can be more confusing than helpful. +To avoid this dialogue for all users on the system the administrator can create +a file '/etc/thunderbird/no_migration_popup' and the starting wrapper will +not pop-up the information dialogue if the migration isn't already done. + += User specific MIME Associations = +=================================== + +The desktop environment (usually Gnome, KDE, Mate etc.) is holding the +specific associations between MIME types and applications in various +places. In order the user can override system settings and adding new +ones the according place in the users home is the file +'$(HOME)/.config/mimeapps.list'. + +The migration is taking care for old 'icedove.desktop' associations and +is rewriting them to 'thunderbird.desktop'. +Like already done for the user profile, there will be always a backup +of the existing file created before the replacement can be done. In case +of problems you can safely move back to the original file. You will lost +then the needed association for the thunderbird binary. + +You can call '/usr/bin/thunderbird --show-backup' to see created backups from +the various possible modified files while the profile adoption. + +See also: + + https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.html + += Migration of global configurations = +====================================== + +If you have some own special preferences files placed in '/etc/icedove/pref/' +they will be moved to '/etc/thunderbird/pref/'. +In case you have a modified file '/etc/icedove/pref/icedove.js' it will be +moved to '/etc/thunderbird/pref/icedove.js.dpkg-backup' to keep your changes. +Please adjust this file to the Thunderbird specific configuration file +'/etc/thunderbird/pref/thunderbird.js'. The old folder '/etc/icedove' is gone +be removed only if it is completely empty. + +There are still some corner cases where this automatism with configuration +files in /etc/thunderbird/pref is not fully working. Please note #806955 [4] +about such issues. + +[1] https://en.wikipedia.org/wiki/Mozilla_software_rebranded_by_Debian +[2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=815006 +[3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=816679 +[4] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=806955 + + -- Carsten Schoenert Sun, 21 Aug 2016 10:12:00 +0200 + +Mozilla Crash Reporter for Thunderbird +-------------------------------------- + +The crash reporter for Thunderbird is enabled since version > 1:45.6.0-3. By +this a possible crash could be automatically send to Mozilla if the user is +accepting this. There is nothing send to Mozilla without a user action. More +information about the crash reporter can be found on: + +https://support.mozilla.org/en-US/kb/mozilla-crash-reporter-tb + +Please consider to use the crash reporter for getting crashes reported +upstream, this also helps the maintainers if Thunderbird to get crash reports +send upstream. +Submitted crash reports can be found, if any was send, in + + ~/.thunderbird/Crash Reports/submitted/ + + -- Carsten Schoenert Sun, 29 Jan 2017 14:15:00 +0100 diff --git a/README.apparmor b/README.apparmor new file mode 100644 index 0000000000..3974689953 --- /dev/null +++ b/README.apparmor @@ -0,0 +1,30 @@ +AppArmor policy +--------------- + +The thunderbird package includes an AppArmor profile +(/etc/apparmor.d/usr.bin.thunderbird). This profile is disabled by +default because it has to break a number of common use cases in order +to provide meaningful application confinement. + +If you want to trade additional security against potential +functionality breakage, you can enable this profile by running: + + sudo rm /etc/apparmor.d/disable/usr.bin.thunderbird && \ + sudo apparmor_parser -r -T -W /etc/apparmor.d/usr.bin.thunderbird + +To display the current state of the Thunderbird profile, run: + + sudo apt install jq && \ + sudo aa-status --pretty-json | jq .profiles.thunderbird + +To debug issues with this AppArmor profile, see: + + https://wiki.debian.org/AppArmor/Debug + +This AppArmor profile is maintained collaboratively, in +a cross-distribution manner, within the AppArmor upstream project. +You can report issues or propose improvements there: + + https://gitlab.com/apparmor/apparmor-profiles + + -- Carsten Schoenert Sun, 3 Dec 2017 18:03:00 +0200 diff --git a/README.source b/README.source new file mode 100644 index 0000000000..78e18d3a84 --- /dev/null +++ b/README.source @@ -0,0 +1,105 @@ +This package is maintained with git-buildpackage(1). + +It uses pristine-tar(1) to store enough information in git to generate +bit identical tarballs when building the package without having +downloaded an upstream tarball first. + +When working with patches it is recommended to use "gbp pq import" to +import the patches, modify the source and then use "gbp pq export +--commit" to commit the modifications. + +The changelog is generated using "gbp dch" so if you submit any +changes don't bother to add changelog entries but rather provide +a nice git commit message that can then end up in the changelog. + +It is recommended to build the package with pbuilder using: + + gbp builpackage --git-pbuilder + +For information on how to set up a pbuilder environment see the +git-pbuilder(1) manpage. In short: + + DIST=sid git-pbuilder create + gbp clone + cd + gbp buildpackage --git-pbuilder + +src:thunderbird uses component tarballs for the l10n packages (see below). + + +Creating a source tarball thunderbird +===================================== + +Download the source from the Mozilla CDN [1], then use debian/repack.py +to repackage the Thunderbird upstream tarball: + + debian/repack.py -p thunderbird -u 52.4.0 -c xz ../thunderbird-52.4.0.source.tar.xz + +[1] http://ftp.mozilla.org/pub/thunderbird/releases/ + + +Creating a source tarball thunderbird-l10n +========================================== + +We need to create the component tarball for the thunderbird l10n: + + thunderbird_[xx].orig-thunderbird-l10n.tar.xz + +using + + debian/create-thunderbird-l10n-tarball.sh + +You need to run the script on top of the Thunderbird Git repository. + + +Creating a source tarball lightning-l10n +======================================= + +As before we need to create the component tarball for the lightning l10n: + + thunderbird_[xx].orig-lightning-l10n.tar.xz + +The helper script + + debian/create-lightning-l10n-tarball.sh + +You need to run the script on top of the Thunderbird Git repository. + + +Importing the source tarballs +============================= + +Since version 45.0 the source package Icedove was using component +tarballs to include the l10n source for iceowl-extension and thunderbird. +The same is now also true for src:thunderbird starting with 52.4.0 with +lightning and thunderbird l10n component tarballs. + +git-buildpackage supports component tarballs since version 0.8.0 so +you can import the tarballs using "gbp import-orig". Make sure the +component tarballs are placed in the same folder as +thunderbird_[version].orig.tar.xz then import the new upstream version as +usual: + + gbp import-orig --sign-tags [--verbose] /path/to/thunderbird_[version].orig.tar.xz + + +Pre-shipped Font file(s) +======================= +The source of Firefox is shipping a pre-build font EmojiOneMozilla.ttf in +the folder + + mozilla/browser/fonts/ + +Currently this font isn't provided by any package in Debian but Thunderbird is +needing this font as well in case users are working and using the HTML modus for +email reading or writing. Thus we ship that font starting with > 52.4.0-1 in + + /usr/lib/thunderbird/font + +Once the font is provided by a package we can drop the shipped file. There is +RFP #881475 about packaging the EmojiOne font. + +See also bug reports #849602 and #881299 + + https://bugs.debian.org/849602 + https://bugs.debian.org/881299 diff --git a/account-autoconfig/riseup.net.xml b/account-autoconfig/riseup.net.xml new file mode 100644 index 0000000000..75952efad1 --- /dev/null +++ b/account-autoconfig/riseup.net.xml @@ -0,0 +1,45 @@ + + + + riseup.net + + Riseup Networks Mail + Riseup + + + imap.riseup.net + 993 + SSL + %EMAILLOCALPART% + plain + + + + pop.riseup.net + 995 + SSL + plain + %EMAILLOCALPART% + + + + mail.riseup.net + 465 + SSL + %EMAILLOCALPART% + plain + true + false + + + + + + + Configure Thunderbird for Riseup Mail + + + + + diff --git a/apparmor/usr.bin.thunderbird b/apparmor/usr.bin.thunderbird new file mode 100644 index 0000000000..5c69ecdf9f --- /dev/null +++ b/apparmor/usr.bin.thunderbird @@ -0,0 +1,433 @@ +# vim:syntax=apparmor +# Author: Simon Deziel +# This apparmor profile is derived from firefox profile +# by Jamie Strandboge + +# Declare an apparmor variable to help with overrides +@{MOZ_LIBDIR}=/usr/lib/thunderbird + +#include + +profile thunderbird /usr/lib/thunderbird/thunderbird{,-bin} { + #include + #include + #include + # TODO: finetune this for required accesses + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + + # Backported from the mesa abstraction, available in AppArmor >2.13 + # System files + /dev/dri/ r, # libGLX_mesa.so calls drmGetDevice2() + + # User files + owner @{HOME}/.cache/ w, # if user clears all caches + owner @{HOME}/.cache/mesa_shader_cache/ w, + owner @{HOME}/.cache/mesa_shader_cache/index rw, + owner @{HOME}/.cache/mesa_shader_cache/??/ w, + owner @{HOME}/.cache/mesa_shader_cache/??/* rw, + # End of backported mesa abstraction + + # Backported from the dri-enumerate abstraction, available in AppArmor 2.13 + /sys/devices/pci[0-9]*/**/{device,subsystem_device,subsystem_vendor,uevent,vendor} r, + + # Allow opening attachments + # TODO: create and use abstractions for opening various file formats + /{usr/local/,usr/,}bin/* Cx -> sanitized_helper, + /usr/lib/libreoffice/program/soffice Cxr -> sanitized_helper, + + # Allow opening links + # GDesktopAppInfo in GLib 2.64.x uses a very small shell script + # to launch .desktop files, instead of gio-launch-desktop + /{usr/,}bin/{dash,bash} ixr, + # With older GLib we might still be on the fallback code path + # (remove this after Debian 11 and Ubuntu 20.04) + /usr/lib/@{multiarch}/glib-[0-9]*/gio-launch-desktop ix, + + # For Xubuntu to launch the browser + /usr/bin/exo-open ixr, + /usr/lib/@{multiarch}/xfce4/exo-[1-9]/exo-helper-[1-9] ixr, + /etc/xdg/xdg-xubuntu/xfce4/helpers.rc r, + /etc/xdg/xfce4/helpers.rc r, + owner @{HOME}/.config/xfce4/helpers.rc r, + + # for crash reports? + ptrace (read,trace) peer=@{profile_name}, + + /usr/lib/thunderbird/thunderbird{,-bin} ixr, + + # Pulseaudio + /usr/bin/pulseaudio Pixr, + + owner @{HOME}/.{cache,config}/dconf/user rw, + owner @{HOME}/.cache/thumbnails/** r, + owner /run/user/[0-9]*/dconf/user rw, + owner @{HOME}/.config/gtk-3.0/bookmarks r, + deny owner @{HOME}/.local/share/gvfs-metadata/* r, + + # potentially extremely sensitive files + audit deny @{HOME}/.gnupg/** mrwkl, + audit deny @{HOME}/.ssh/** mrwkl, + + # rw access to HOME is useful when sending/receiving attachments + owner @{HOME}/[^.]** rw, + + # other commonly used locations + /{data,media,mnt,srv}/** r, + owner /{data,media,mnt,srv}/** rw, + owner @{HOME}/.signature* r, + + # Required for LVM setups + /sys/devices/virtual/block/dm-[0-9]*/uevent r, + + # Addons (too lax for thunderbird) + ##include + + # for networking + network inet stream, + network inet6 stream, + @{PROC}/[0-9]*/net/if_inet6 r, + @{PROC}/[0-9]*/net/ipv6_route r, + @{PROC}/[0-9]*/net/dev r, + @{PROC}/[0-9]*/net/wireless r, + @{PROC}/[0-9]*/net/arp r, + + # should maybe be in abstractions + /etc/ r, + /etc/mime.types r, + /etc/mailcap r, + /etc/xdg/*buntu/applications/defaults.list r, # for all derivatives + /etc/xfce4/defaults.list r, + /usr/share/xubuntu/applications/defaults.list r, + owner /dev/shm/org.chromium.* rw, # for Chromium IPC + owner /dev/shm/org.mozilla.ipc.[0-9]*.[0-9]* rw, # for Chromium IPC + owner @{HOME}/.cache/fontconfig/*.cache-* rwk, + owner @{HOME}/.local/share/applications/defaults.list r, + owner @{HOME}/.local/share/applications/mimeapps.list r, + owner @{HOME}/.local/share/applications/mimeinfo.cache r, + owner @{HOME}/.recently-used r, + /tmp/.X[0-9]*-lock r, + /etc/udev/udev.conf r, + # Doesn't seem to be required, but noisy. Maybe allow 'r' for 'b*' if needed. + # Possibly move to an abstraction if anything else needs it. + deny /run/udev/data/** r, + + /etc/timezone r, + /etc/wildmidi/wildmidi.cfg r, + + # thunderbird specific + /etc/thunderbird/ r, + /etc/thunderbird/** r, + /etc/xul-ext/** r, + /etc/xulrunner-2.0*/ r, + /etc/xulrunner-2.0*/** r, + /etc/gre.d/ r, + /etc/gre.d/* r, + + # noisy + deny @{MOZ_LIBDIR}/** w, + deny /usr/lib/thunderbird-addons/** w, + deny /usr/lib/xulrunner-addons/** w, + deny /usr/lib/xulrunner-*/components/*.tmp w, + deny /.suspended r, + deny /boot/initrd.img* r, + deny /boot/vmlinuz* r, + deny /var/cache/fontconfig/ w, + + # noisy file dialog: + # + # TODO: remove these rules when file dialogs becomes "trusted helpers" that can + # read anything, or ability to override `deny` rules is implemented [0]. + # + # NOTE: modify `local/usr.bin.thunderbird` to add `deny` rules for cases not + # mentioned here when `DENIED` messages appear for dot files in kernel (or audit) + # logs. If that case is believed to be common enough, please report bug against + # package shipping this profile in order to extend this list. + # + # [0] https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/451422 + deny @{HOME}/.KiCad r, + deny @{HOME}/.abbrev_defs r, + deny @{HOME}/.aspell.*.{prepl,pws} r, + deny @{HOME}/.bashrc r, + deny @{HOME}/.bash_logout r, + deny @{HOME}/.bbdb r, + deny @{HOME}/.caffrc r, + deny @{HOME}/.colordiffrc r, + deny @{HOME}/.cvpcb r, + deny @{HOME}/.cvspass r, + deny @{HOME}/.devscripts r, + deny @{HOME}/.directory r, + deny @{HOME}/.dpt.conf r, + deny @{HOME}/.dput.cf r, + deny @{HOME}/.dupload.conf r, + deny @{HOME}/.eeschema r, + deny @{HOME}/.emacs r, + deny @{HOME}/.emacs.bmk r, + deny @{HOME}/.emacs.desktop* r, + deny @{HOME}/.fehbg r, + deny @{HOME}/.forward r, + deny @{HOME}/.gbp.conf r, + deny @{HOME}/.gerbview r, + deny @{HOME}/.gitconfig r, + deny @{HOME}/.gitk r, + deny @{HOME}/.gtk-recordmydesktop r, + deny @{HOME}/.gtkrc-2.0 r, + deny @{HOME}/.i18n r, + deny @{HOME}/.ido.last r, + deny @{HOME}/.iftoprc r, + deny @{HOME}/.inputrc r, + deny @{HOME}/.jigdo-lite r, + deny @{HOME}/.kicad r, + deny @{HOME}/.kicad_common r, + deny @{HOME}/.lesshst r, + deny @{HOME}/.listadmin.ini r, + deny @{HOME}/.minicpanrc r, + deny @{HOME}/.mostrc r, + deny @{HOME}/.mrconfig r, + deny @{HOME}/.mrlog r, + deny @{HOME}/.mrtrust r, + deny @{HOME}/.my.cnf r, + deny @{HOME}/.newsrc-dribble r, + deny @{HOME}/.newsrc.eld r, + deny @{HOME}/.notmuch-config r, + deny @{HOME}/.offlineimaprc r, + deny @{HOME}/.pam_environment r, + deny @{HOME}/.pbuilderrc r, + deny @{HOME}/.pcbnew r, + deny @{HOME}/.perldb r, + deny @{HOME}/.perltidyrc r, + deny @{HOME}/.pgadmin3 r, + deny @{HOME}/.pgadmin_histoqueries r, + deny @{HOME}/.pgpass r, + deny @{HOME}/.python_history r, + deny @{HOME}/.pythonhist r, + deny @{HOME}/.quiltrc r, + deny @{HOME}/.reportbug-ng r, + deny @{HOME}/.reportbugrc r, + deny @{HOME}/.rnd r, + deny @{HOME}/.screenrc r, + deny @{HOME}/.selected_editor r, + deny @{HOME}/.steam/bin{32,64}/steam r, # through a symlink + deny @{HOME}/.steam/steam.pid r, # through a symlink + deny @{HOME}/.steam/ubuntu12_{32,64}/steam r, # through a symlink + deny @{HOME}/.sudo_as_admin_successful r, + deny @{HOME}/.swp r, + deny @{HOME}/.taskrc r, + deny @{HOME}/.tmux.conf r, + deny @{HOME}/.vboxclient-*.pid r, + deny @{HOME}/.vimrc r, + deny @{HOME}/.wget-hsts r, + deny @{HOME}/.xchm r, + deny @{HOME}/.xfce4-session.verbose-log* r, + deny @{HOME}/.xim.template r, + deny @{HOME}/.xinitrc.template r, + deny @{HOME}/.xinputrc r, + deny @{HOME}/.xscreensaver r, + deny @{HOME}/.xsession*errors* r, + deny @{HOME}/.xsessionrc r, + deny @{HOME}/.Xresources r, + deny @{HOME}/.Xsession r, + deny @{HOME}/.zcompdump r, + deny @{HOME}/.zlogout r, + deny @{HOME}/.zshrc r, + + # TODO: investigate + deny /usr/bin/gconftool-2 x, + + # Deny proprietary NVIDIA driver optimizations + # TODO: remove once it can be disabled via conditionals set up in nvidia abstraction + deny /tmp/#[0-9][0-9][0-9][0-9][0-9][0-9][0-9] m, + deny /tmp/.gl?????? mrw, + deny @{HOME}/#[0-9][0-9][0-9][0-9][0-9][0-9][0-9]{,[0-9]} m, + deny @{HOME}/.nv/.gl?????? mrw, + + owner @{PROC}/[0-9]*/mountinfo r, + owner @{PROC}/[0-9]*/stat r, + owner @{PROC}/[0-9]*/task/[0-9]*/stat r, + /sys/devices/pci[0-9]*/**/uevent r, + /sys/devices/pci*/**/config r, + /sys/devices/system/node/node[0-9]*/meminfo r, + /etc/mtab r, + /etc/fstab r, + + # Needed for the crash reporter + owner @{PROC}/[0-9]*/environ r, + owner @{PROC}/[0-9]*/auxv r, + owner @{PROC}/[0-9]*/status r, + owner @{PROC}/[0-9]*/cmdline r, + /etc/lsb-release r, + /etc/ssl/openssl.cnf r, + /usr/lib/thunderbird/crashreporter ix, + /usr/bin/expr ix, + /sys/devices/system/cpu/ r, + /sys/devices/system/cpu/** r, + + # about:memory + owner @{PROC}/[0-9]*/statm r, + owner @{PROC}/[0-9]*/smaps r, + + # Needed for container to work in xul builds + /usr/lib/xulrunner-*/plugin-container ixr, + + # allow access to documentation and other files the user may want to look + # at in /usr and /opt + /usr/ r, + /usr/** r, + /opt/ r, + /opt/** r, + + # so browsing directories works + / r, + /**/ r, + + # per-user thunderbird configuration + owner @{HOME}/.{icedove,thunderbird}/ rw, + owner @{HOME}/.{icedove,thunderbird}/** rw, + owner @{HOME}/.{icedove,thunderbird}/**/storage.sdb k, + owner @{HOME}/.{icedove,thunderbird}/**/*.{db,parentlock,sqlite}* k, + owner @{HOME}/.{icedove,thunderbird}/plugins/** rm, + owner @{HOME}/.{icedove,thunderbird}/**/plugins/** rm, + owner @{HOME}/.cache/thunderbird/ rw, + owner @{HOME}/.cache/thunderbird/** rw, + + # system emails + owner /var/mail/* rwlk, + + # + # Extensions + # /usr/share/.../extensions/... is already covered by '/usr/** r', above. + # Allow 'x' for downloaded extensions, but inherit policy for safety + owner @{HOME}/.{icedove,thunderbird}/**/extensions/** mixrw, + owner @{HOME}/.mozilla/ rw, + owner @{HOME}/.mozilla/extensions/ rw, + owner @{HOME}/.mozilla/extensions/** mixr, + /usr/share/xul-ext/**/*.sqlite rk, + /usr/lib/mozilla/plugins/*.so rm, + /usr/lib/xul-ext/**/*.sqlite rk, + /usr/lib/thunderbird-addons/extensions/**/*.sqlite rk, + + deny @{MOZ_LIBDIR}/update.test w, + deny /usr/lib/mozilla/extensions/**/ w, + deny /usr/lib/xulrunner-addons/extensions/**/ w, + deny /usr/share/mozilla/extensions/**/ w, + deny /usr/share/mozilla/ w, + + /usr/bin/gpg Cx -> gpg, + /usr/bin/gpg2 Cx -> gpg, + /usr/bin/gpgconf Cx -> gpg, + /usr/bin/gpg-connect-agent Cx -> gpg, + /usr/lib/gnupg/gpg-wks-client ix, + /{,usr/}bin/ps ix, + + # TB tries to create this file but has no business doing so + deny @{HOME}/.gnupg/gpg-agent.conf w, + + profile gpg { + #include + + # Required to import keys from keyservers + #include + #include + + /usr/share/xul-ext/enigmail/chrome/** r, + + # silence noise from enigmail 1.9+ + deny owner @{HOME}/.{icedove,thunderbird}/*/.parentlock w, + deny owner @{HOME}/.{icedove,thunderbird}/*/panacea.dat w, + deny owner @{HOME}/.{icedove,thunderbird}/*/*.mab w, + deny owner @{HOME}/.{icedove,thunderbird}/**/*.msf w, + deny owner @{HOME}/.cache/thunderbird/**/_CACHE_* w, + + # noise from inherited files + deny @{HOME}/.{icedove,thunderbird}/*/ImapMail/*/INBOX w, + deny /usr/{lib,share}/thunderbird/omni.ja r, + deny /usr/share/thunderbird/extensions/** r, + + # For smartcards? + /dev/bus/usb/ r, + /dev/bus/usb/[0-9]*/ r, + /dev/bus/usb/[0-9]*/[0-9]* r, + + # LDAP key servers + /etc/ldap/ldap.conf r, + + /usr/bin/gpg mr, + /usr/bin/gpg2 mr, + /usr/bin/gpgconf mr, + /usr/bin/gpg-connect-agent mr, + /usr/lib/gnupg/gpgkeys_* ix, + /usr/lib/gnupg2/gpg2keys_* ix, + owner @{HOME}/.gnupg/ rw, + owner @{HOME}/.gnupg/gpg.conf r, + owner @{HOME}/.gnupg/random_seed rwk, + owner @{HOME}/.gnupg/pubring.{gpg,kbx}{,~} rw, + owner @{HOME}/.gnupg/secring.gpg rw, + owner @{HOME}/.gnupg/trustdb.gpg rw, + owner @{HOME}/.gnupg/tofu.db{,-journal} rwk, + owner @{HOME}/.gnupg/S.gpg-agent rw, + owner @{HOME}/.gnupg/S.dirmngr rw, + owner @{HOME}/.gnupg/*.{gpg,kbx}.{lock,tmp} rwl, + owner @{HOME}/.gnupg/.gpg-*.lock rwl, + owner @{HOME}/.gnupg/gnupg_spawn_*.lock rwl, + owner @{HOME}/.gnupg/.#*[0-9] rw, + owner @{HOME}/.gnupg/.#*[0-9]x rwl, + owner @{HOME}/.gnupg/.#lk0x[0-9a-f]* rwl, + owner @{HOME}/.gnupg/.gpg-v[0-9]*-migrated rw, + owner @{HOME}/.gnupg/openpgp-revocs.d/{,[A-F0-9]*.rev} rw, + owner @{HOME}/** r, + owner @{PROC}/@{pids}/mountinfo r, + + # For gpgconf + owner @{PROC}/@{pids}/fd/ r, + + owner /run/user/[0-9]*/keyring-*/gpg rw, + + # For encryption + signature + owner /tmp/gpgOutput.* rw, + + # for inline pgp + owner /tmp/encfile rw, + owner /tmp/encfile-[0-9]* rw, + + # for key import + owner /tmp/enigmail_import/.#lk0x[0-9a-f]* rw, + owner /tmp/enigmail_import/.#lk0x[0-9a-f]*x rwl, + owner /tmp/enigmail_import/{keyring,trustdb}.lock rwl, + owner /tmp/enigmail_import/{keyring,trustdb}{,~,.tmp} rw, + /usr/bin/dirmngr ix, + owner @{PROC}/@{pids}/task/@{tid}/comm rw, + + # for revocation certificate generation in the Enigmail setup wizard + owner @{HOME}/.{icedove,thunderbird}/*/0x[A-F0-9]*_rev.asc rw, + # for revocation certificate generation in the Enigmail key manager + owner @{HOME}/*0x[A-F0-9]**.asc rw, + + # for signature generation + owner /tmp/nsemail.eml w, + owner /tmp/nsemail-[0-9]*.eml w, + + # for signature verifications + owner /tmp/data.sig r, + owner /tmp/data-[0-9]*.sig r, + + owner /tmp/gpg-[a-zA-Z0-9]*/S.gpg-agent rw, + + /usr/share/sounds/** r, + } + + # Site-specific additions and overrides. See local/README for details. + #include +} + diff --git a/calendar-google-provider.dirs b/calendar-google-provider.dirs new file mode 100644 index 0000000000..141413a3fc --- /dev/null +++ b/calendar-google-provider.dirs @@ -0,0 +1 @@ +usr/share/xul-ext/calendar-google-provider diff --git a/calendar-google-provider.links b/calendar-google-provider.links new file mode 100644 index 0000000000..2062fa4bcf --- /dev/null +++ b/calendar-google-provider.links @@ -0,0 +1 @@ +usr/share/xul-ext/calendar-google-provider usr/share/mozilla/extensions/{3550f703-e582-4d05-9a08-453d09bdfdc6}/{a62ef8ec-5fdc-40c2-873c-223b8a6925cc} diff --git a/changelog b/changelog new file mode 100644 index 0000000000..0d68120b8c --- /dev/null +++ b/changelog @@ -0,0 +1,5903 @@ +thunderbird (1:68.11.0-3) unstable; urgency=medium + + * [28707fd] d/xpi-pack.sh: adding xpi-pack shell script + As we can't depend on mozilla-devscripts anymore we pick up the shell + script from that package as this builds XPI files we need. + * [037212e] Drop mozilla-devscripts as B-D + mozilla-devscripts isn't ported to Python3 yet and depends on Python2 so. + We don't need that package as B-D as we picked the main shell script from + that and we can drop that package from the build dependencies. + * [31eda41] Drop python-{minimal,ply} from B-D + These packages are removed from teh archive and we don't need them for + building Thunderbird as long we have python2 as package available. + (Closes: #967223) + + -- Carsten Schoenert Tue, 04 Aug 2020 19:06:20 +0200 + +thunderbird (1:68.11.0-2) unstable; urgency=medium + + * [110a375] d/control: increase B-D for libnss3 + * [73fa23e] d/control: tb manually set dep on libnss3 to 2:3.55 + (Closes: #966806) + + -- Carsten Schoenert Sun, 02 Aug 2020 20:12:49 +0200 + +thunderbird (1:68.11.0-1) unstable; urgency=medium + + * [093b080] New upstream version 68.11.0 + Fixed CVE issues in upstream version 68.11.0 (MFSA 2020-35): + CVE-2020-15652: Potential leak of redirect targets when loading scripts + in a worker + CVE-2020-6514: WebRTC data channel leaks internal address to peer + CVE-2020-6463: Use-after-free in ANGLE gl::Texture::onUnbindAsSamplerTexture + CVE-2020-15659: Memory safety bugs fixed in Thunderbird 68.11 + + -- Carsten Schoenert Wed, 29 Jul 2020 22:26:14 +0200 + +thunderbird (1:68.10.0-1) unstable; urgency=medium + + * [7537684] New upstream version 68.10.0 + Fixed CVE issues in upstream version 68.10.0 (MFSA 2020-26): + CVE-2020-12417: Memory corruption due to missing sign-extension for + ValueTags on ARM64 + CVE-2020-12418: Information disclosure due to manipulated URL object + CVE-2020-12419: Use-after-free in nsGlobalWindowInner + CVE-2020-12420: Use-After-Free when trying to connect to a STUN server + MFSA-2020-0001: Automatic account setup leaks Microsoft Exchange login + credentials + CVE-2020-12421: Add-On updates did not respect the same certificate trust + rules as software updates + + -- Carsten Schoenert Sat, 04 Jul 2020 10:55:31 +0200 + +thunderbird (1:68.9.0-1) unstable; urgency=medium + + [ intrigeri ] + * [fd13825] AppArmor: update profile from upstream at commit 860d2d9 + (Closes: #960465) + + [ Carsten Schoenert ] + * [c310c40] New upstream version 68.9.0 + Fixed CVE issues in upstream version 68.9.0 (MFSA 2020-22): + CVE-2020-12399: Timing attack on DSA signatures in NSS library + CVE-2020-12405: Use-after-free in SharedWorkerService + CVE-2020-12406: JavaScript Type confusion with NativeTypes + CVE-2020-12410: Memory safety bugs fixed in Thunderbird 68.9.0 + CVE-2020-12398: Security downgrade with IMAP STARTTLS leads to + information leakage + + -- Carsten Schoenert Fri, 05 Jun 2020 20:29:35 +0200 + +thunderbird (1:68.8.1-1) unstable; urgency=medium + + * [7495e7a] New upstream version 68.8.1 + + -- Carsten Schoenert Fri, 22 May 2020 19:04:20 +0200 + +thunderbird (1:68.8.0-1) unstable; urgency=medium + + * [9b5ae46] New upstream version 68.8.0 + Fixed CVE issues in upstream version 68.8.0 (MFSA 2020-18): + CVE-2020-12397: Sender Email Address Spoofing using encoded Unicode + characters + CVE-2020-12387: Use-after-free during worker shutdown + CVE-2020-6831: Buffer overflow in SCTP chunk input validation + CVE-2020-12392: Arbitrary local file access with 'Copy as cURL' + CVE-2020-12393: Devtools' 'Copy as cURL' feature did not fully escape + website-controlled data, potentially leading to command + injection + CVE-2020-12395: Memory safety bugs fixed in Thunderbird 68.8.0 + + -- Carsten Schoenert Tue, 05 May 2020 20:47:29 +0200 + +thunderbird (1:68.7.0-1) unstable; urgency=medium + + * [c0052af] New upstream version 68.7.0 + Fixed CVE issues in upstream version 68.7.0 (MFSA 2020-14): + CVE-2020-6819: Use-after-free while running the nsDocShell destructor + CVE-2020-6820: Use-after-free when handling a ReadableStream + CVE-2020-6821: Uninitialized memory could be read when using the WebGL + copyTexSubImage method + CVE-2020-6822: Out of bounds write in GMPDecodeData when processing large + images + CVE-2020-6825: Memory safety bugs fixed in Thunderbird 68.7 + + -- Carsten Schoenert Sun, 12 Apr 2020 07:40:41 +0200 + +thunderbird (1:68.6.0-1) unstable; urgency=medium + + * [5709774] New upstream version 68.6.0 + Fixed CVE issues in upstream version 68.6.0 (MFSA 2020-10): + CVE-2019-20503: Out of bounds reads in sctp_load_addresses_from_init + CVE-2020-6805: Use-after-free when removing data about origins + CVE-2020-6806: BodyStream::OnInputStreamReady was missing protections + against state confusion + CVE-2020-6807: Use-after-free in cubeb during stream destruction + CVE-2020-6811: Devtools' 'Copy as cURL' feature did not fully escape + website-controlled data, potentially leading to + command injection + CVE-2020-6812: The names of AirPods with personally identifiable + information were exposed to websites with camera or + microphone permission + CVE-2020-6814: Memory safety bugs fixed in Thunderbird 68.6 + + -- Carsten Schoenert Mon, 16 Mar 2020 20:01:29 +0100 + +thunderbird (1:68.5.0-1) unstable; urgency=medium + + * [d79bf82] New upstream version 68.5.0 + Fixed CVE issues in upstream version 68.5.0 (MFSA 2020-07): + CVE-2020-6793: Out-of-bounds read when processing certain email messages + CVE-2020-6794: Setting a master password post-Thunderbird 52 does not + delete unencrypted previously stored passwords + CVE-2020-6795: Crash processing S/MIME messages with multiple signatures + CVE-2020-6798: Incorrect parsing of template tag could result in + JavaScript injection + CVE-2020-6792: Message ID calculcation was based on uninitialized data + CVE-2020-6800: Memory safety bugs fixed in Thunderbird 68.5 + (Closes: #891848) + * [0884df6] d/control: increase Standards-Version to 4.5.0 + No further changes needed. + + -- Carsten Schoenert Thu, 13 Feb 2020 17:58:44 +0100 + +thunderbird (1:68.4.2-1) unstable; urgency=medium + + * [7ab7786] d/gbp.conf: add some more files we need to filter out + * [9c02c34] New upstream version 68.4.2 + + -- Carsten Schoenert Sun, 26 Jan 2020 13:13:49 +0100 + +thunderbird (1:68.4.1-1) unstable; urgency=medium + + * [a00f3e9] New upstream version 68.4.1 + Fixed CVE issues in upstream version 68.4.1 (MFSA 2020-04): + CVE-2019-17026: IonMonkey type confusion with StoreElementHole and + FallibleStoreElement + CVE-2019-17015: Memory corruption in parent process during new content + process initialization on Windows + CVE-2019-17016: Bypass of @namespace CSS sanitization during pasting + CVE-2019-17017: Type Confusion in XPCVariant.cpp + CVE-2019-17022: CSS sanitization does not escape HTML tags + CVE-2019-17024: Memory safety bugs fixed in Thunderbird 68.4.1 + * [6b1fd82] rebuild patch queue from patch-queue branch + removed patch (included upstream) + fixes/Update-bindgen-in-ESR68.-r-glandium-a-RyanVM.patch + + -- Carsten Schoenert Fri, 10 Jan 2020 18:33:43 +0100 + +thunderbird (1:68.3.1-1) unstable; urgency=medium + + [ Emilio Pozuelo Monfort ] + * [6f59313] Fix MOZ_BUILD_DATE to have the expected format + + [ Carsten Schoenert ] + * [5d0f4b1] d/rules: don't use SOURCE_DATE_EPOCH for MOZ_BUILD_DATE + (Closes: #946588) + * [1467af5] New upstream version 68.3.1 + + -- Carsten Schoenert Wed, 18 Dec 2019 15:54:44 +0100 + +thunderbird (1:68.3.0-2) unstable; urgency=medium + + * [0625d30] rebuild patch queue from patch-queue branch + added patches: + fixes/Bug-1531309-Don-t-use-__PRETTY_FUNCTION__-or-__FUNCTION__.patch + fixes/Update-bindgen-in-ESR68.-r-glandium-a-RyanVM.patch + * [ea8d98c] Breaks: add versioned birdtray package + + -- Carsten Schoenert Mon, 09 Dec 2019 18:22:15 +0100 + +thunderbird (1:68.3.0-1) unstable; urgency=medium + + * [fe289ec] /u/b/thunderbird: export variable DICPATH before start + (Closes: #944295) + * [a9a48c6] New upstream version 68.3.0 + Fixed CVE issues in upstream version 68.3 (MFSA 2019-38): + CVE-2019-17008: Use-after-free in worker destruction + CVE-2019-13722: Stack corruption due to incorrect number of arguments in + WebRTC code + CVE-2019-11745: Out of bounds write in NSS when encrypting with a block + cipher + CVE-2019-17009: Updater temporary files accessible to unprivileged + processes + CVE-2019-17010: Use-after-free when performing device orientation checks + CVE-2019-17005: Buffer overflow in plain text serializer + CVE-2019-17011: Use-after-free when retrieving a document in + antitracking + CVE-2019-17012: Memory safety bugs fixed in Firefox 71, Firefox ESR + 68.3, and Thunderbird 68.3 + * [fb23473] d/control: increase B-D version on NSS to 3.44.3 + * [6f59938] Breaks: adding more non compatible packaged AddOns + + -- Carsten Schoenert Thu, 05 Dec 2019 10:03:22 +0100 + +thunderbird (1:68.2.2-1) unstable; urgency=medium + + * [198d539] xul-ext-compactheader: allow also version << 3.0.0 + * [0e93753] d/control: add incompatibility with jsunit << 0.2.2 + * [87c84cb] New upstream version 68.2.2 + This upstream version has removed the source for calendar-google-provider, + thus we can't provide the related binary package any more. + * [a3cea2a] rebuild patch queue from patch-queue branch + rebuild patch queue from patch-queue branch + + removed patches (included upstream): + debian/patches/fixes/Bug-1470701-Use-run-time-page-size-when-changing-map.patch + debian/patches/fixes/Bug-1505608-Try-to-ensure-the-bss-section-of-the-elf.patch + debian/patches/fixes/Bug-1526744-find-dupes.py-Calculate-md5-by-chunk.patch + debian/patches/fixes/Build-also-gdata-provider-as-xpi-file.patch + debian/patches/fixes/rust-ignore-not-available-documentation.patch + debian/patches/porting-kfreebsd-hurd/Fix-GNU-non-Linux-failure-to-build-because-of-ipc-ch.patch + debian/patches/porting-mips/Bug-1444303-MIPS-Fix-build-failures-after-Bug-1425580-par.patch + debian/patches/porting-mips/Bug-1444834-MIPS-Stubout-MacroAssembler-speculationBarrie.patch + debian/patches/porting-powerpc/powerpc-Don-t-use-static-page-sizes-on-powerpc.patch + debian/patches/porting-sparc64/Bug-1434726-Early-startup-crash-on-Linux-sparc64-in-HashI.patch + * [1730f5f] d/control: remove references to calendar-google-provider + Don't build calendar-google-provider any more and remove any references + from other binary packages. + * [1b0bbb8] d/rules: remove any calendar-google-provider stuff + * [92f681c] thunderbird.NEWS: Adding hint about removal of gdata + Give out an announcement about the removal of a possible previously + installed package calendar-google-provider. + + -- Carsten Schoenert Sun, 10 Nov 2019 12:09:17 +0100 + +thunderbird (1:68.2.1-1) unstable; urgency=medium + + [ intrigeri ] + * [c48e2cb] AppArmor: update profile from upstream at commit a27a1a5 + (Closes: #941290) + + [ Carsten Schoenert ] + * [98497ae] New upstream version 68.2.0 + Fixed CVE issues in upstream version 68.2 (MFSA 2019-35): + CVE-2019-15903: Heap overflow in expat library in XML_GetCurrentLineNumber + CVE-2019-11757: Use-after-free when creating index updates in IndexedDB + CVE-2019-11758: Potentially exploitable crash due to 360 Total Security + CVE-2019-11759: Stack buffer overflow in HKDF output + CVE-2019-11760: Stack buffer overflow in WebRTC networking + CVE-2019-11761: Unintended access to a privileged JSONView object + CVE-2019-11762: document.domain-based origin isolation has + same-origin-property violation + CVE-2019-11763: Incorrect HTML parsing results in XSS bypass technique + CVE-2019-11764: Memory safety bugs fixed in Thunderbird 68.2 + (Closes: #925841) + * [a104c51] d/control: increase Standards-Version to 4.4.1 + * [6c9d012] xul-ext-dispmua: set current min usable version + * [b3bf16f] New upstream version 68.2.1 + * [8f89b90] d/control: decrease build architecture list + Decreasing the current list of build architectures. Not meant to keep this + forever, removed RC architectures needing support and volunteering to get + them back. + (Closes: #921258) + + -- Carsten Schoenert Fri, 01 Nov 2019 20:36:59 +0100 + +thunderbird (1:68.1.2-1~exp1) experimental; urgency=medium + + * [81f4144] xul-ext-compactheader: increase minimal usable version + * [a815589] Update the global information about TB in Debian + * [bb5f5f7] rebuild patch queue from patch-queue branch + * [6fe7d3f] xul-ext-sogo-connector: increase minimal usable version + * [2e29af5] New upstream version 68.1.2 + + -- Carsten Schoenert Sat, 26 Oct 2019 08:41:50 +0200 + +thunderbird (1:68.1.1-1~exp1) experimental; urgency=medium + + [ intrigeri ] + * [3f49653] AppArmor: update profile from upstream at commit ed52e4a + + [ Carsten Schoenert ] + * [348f476] New upstream version 68.0~b5 + * [2a2f101] New upstream version 68.1.1 + Fixed CVE issues in upstream version 68.1 (MFSA 2019-20): + CVE-2019-11711: Script injection within domain through inner window reuse + CVE-2019-11712: Cross-origin POST requests can be made with NPAPI plugins + by following 308 redirects + CVE-2019-11713: Use-after-free with HTTP/2 cached stream + CVE-2019-11714: NeckoChild can trigger crash when accessed off of main + thread + CVE-2019-11729: Empty or malformed p256-ECDH public keys may trigger a + segmentation fault + CVE-2019-11715: HTML parsing error can contribute to content XSS + CVE-2019-11716: globalThis not enumerable until accessed + CVE-2019-11717: Caret character improperly escaped in origins + CVE-2019-11719: Out-of-bounds read when importing curve25519 private key + CVE-2019-11720: Character encoding XSS vulnerability + CVE-2019-11721: Domain spoofing through unicode latin 'kra' character + CVE-2019-11730: Same-origin policy treats all files in a directory as + having the same-origin + CVE-2019-11723: Cookie leakage during add-on fetching across private + browsing boundaries + CVE-2019-11724: Retired site input.mozilla.org has remote troubleshooting + permissions + CVE-2019-11725: Websocket resources bypass safebrowsing protections + CVE-2019-11727: PKCS#1 v1.5 signatures can be used for TLS 1.3 + CVE-2019-11728: Port scanning through Alt-Svc header + CVE-2019-11710: Memory safety bugs fixed in Firefox 68 and Thunderbird 68 + CVE-2019-11709: Memory safety bugs fixed in Firefox 68, Firefox ESR 60.8, + and Thunderbird 68 + + Fixed CVE issues in upstream version 68.1 (MFSA 2019-20): + CVE-2019-11739: Covert Content Attack on S/MIME encryption using a crafted + multipart/alternative message + CVE-2019-11746: Use-after-free while manipulating video + CVE-2019-11744: XSS by breaking out of title and textarea elements using + innerHTML + CVE-2019-11742: Same-origin policy violation with SVG filters and canvas + to steal cross-origin images + CVE-2019-11752: Use-after-free while extracting a key value in IndexedDB + CVE-2019-11743: Cross-origin access to unload event attributes + CVE-2019-11740: Memory safety bugs fixed in Firefox 69, Firefox ESR 68.1, + Firefox ESR 60.9, Thunderbird 68.1, and Thunderbird 60.9 + + Fixed CVE issues in upstream version 68.1.1 (MFSA 2019-32): + CVE-2019-11755: Spoofing a message author via a crafted S/MIME message + + * [9342624] rebuild patch queue from patch-queue branch + added patches: + debian-hacks/Set-program-name-from-the-remoting-name.patch + debian-hacks/Use-remoting-name-for-call-to-gdk_set_program_class.patch + debian-hacks/Work-around-Debian-bug-844357.patch + fixes/Allow-.js-preference-files-to-set-locked-prefs-with-lockP.patch + fixes/Bug-1556197-amend-Bug-1544631-for-fixing-mips32.patch + fixes/Bug-1560340-Only-add-confvars.sh-as-a-dependency-to-confi.patch + porting-armhf/Bug-1526653-Include-struct-definitions-for-user_vfp-and-u.patch + + removed patch (fixed upstream): + porting-mips/Fix-CPU_ARCH-test-for-libjpeg-on-mips.patch + porting/Work-around-GCC-ICE-on-mips-i386-and-s390x.patch + + * [25cb500] d/control: increase various versions in B-D + * [ee5b713] d/control: remove B-D on librust-cbindgen-dev + Use librust-toml-dev instead, we only need some files from this package, + librust-cbindgen-dev is a metapackage which is broken while packaging. + * [442a6b1] d/rules: work around cargo needs a HOME dir + * [4894a4c] d/control: increase Standards-Version to 4.4.0 + No further changes needed. + * [bb47b68] d/control: update upstream homepage for Thunderbird + Since some time Mozilla Thunderbird has a new homepage placed on URI + https://www.thunderbird.net/ + * [a3b680e] d/source.filter: update the filter sequences + New Thunderbird upstream versions bringing some new unwanted files within + the source. + * [7290ff4] d/control: remove transitional lightning l10n packages + The Lightning l10n packages moved into transitional packages before Buster + was released, now after the Buster release removing these transitional + packages. All required l10n files are available in the packages + thunderbird-$(locale) even for Lightning. + * [3d1d27d] enigmail: increase minimal usable version + Thunderbird 68.x needs at least Enigmal in version 2.1, but increase the + version on Enigmail to the most recent version which is released while + packaging. + * [66069d9] calendar-exchange-provider: removed from Breaks + This package isn't alive in unstable and testing. + * [3b9f936] d/control: remove Xb-Xul-AppId field + Thunderbird don't has any Xul based AddOns since version 68.0 + * [7d8cd7d] lintian-overrides: remove not needed overrides + + -- Carsten Schoenert Sat, 28 Sep 2019 15:38:28 +0200 + +thunderbird (1:68.0~b1-1) experimental; urgency=medium + + * [0eabe70] New upstream version 68.0~b1 + * [2febf67] rebuild patch queue from patch-queue branch + added patch: + debian-hacks/Downgrade-SQlite-version-to-3.27.2.patch + * [cfa5973] d/s/lintian-overrides: adjust overrides for needed files + * [46077e2] d/copyright: update after upstream changes + + -- Carsten Schoenert Sun, 16 Jun 2019 10:28:52 +0200 + +thunderbird (1:67.0~b3-1) experimental; urgency=medium + + [ intrigeri ] + * [9ad75ad] d/rules: drop useless usage of dpkg-parsechangelog + + [ Carsten Schoenert ] + * [d6f6747] New upstream version 67.0~b3 + * [90f73be] rebuild patch queue from patch-queue branch + removed patch: + fixes/Bug-1515641-Turn-enable-av1-around.-r-nalexander.patch + * [7dd5c54] d/control: increase various B-D versions + Increasing the version for the build depending packages of cargo, cbindgen, + libnspr4-dev, libnss3-dev, libsqlite3-dev and rustc. + + -- Carsten Schoenert Tue, 11 Jun 2019 19:36:00 +0200 + +thunderbird (1:66.0~b1-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [afe31d9] New upstream version 66.0~b1 + * [4ec53cc] apparmor: update profile from upstream (commit 7ace41b1) + (cherry-picked from debian/sid) + * [b3657a0] d/rules: make dh_clean more robust + Remove some regenerated files in dh_clean to the build will not fail in + case the build needs to be started twice within the same build environment. + (cherry-picked from debian/sid) + * [dceb027] d/rules: move disable debug option into configure step + Adding the option '--disable-debug-symbols' to the file mozconfig.default + in case the build is running on a 32bit architecture instead of expanding + the variable 'CONFIGURE_FLAGS'. The configuration approach for this option + taken from firefox-esr was not working for the thunderbird package. + (cherry-picked from debian/sid) + * [f7f02a9] d/rules: reorder LDFLAGS for better readability + Make the used additional options for LDFLAGS better readable by reordering + the various used options. Also adding the option '-Wl, --as-needed' to the + list of used options here. + (cherry-picked from debian/sid) + * [79801fb] d/rules: use 'compress-debug-sections' only on 64bit + Do not set 'LDFLAGS += -Wl,--compress-debug-sections=zlib' globally, lets + use this option only if we are on a 64bit architecture as otherwise the + build is failing on 32bit architectures again. We don't want to build any + debug information on 32bit anyway so we don't need this option on these + platforms. + (cherry-picked from debian/sid) + * [11f9e14] d/mozconfig.default: adding option for mipsel + We don't have set up any options for the mipsel platform before, but the + build needs some additional options too on this platform to succeed. + (cherry-picked from debian/sid) + * [e46e178] d/mozconfig.default: disable ion on mips and mipsel + The build will fail on mips{,el} if we have enabled ION, the JavaScript + JIT compiler on these platforms will loose some performance by this. + (cherry-picked from debian/sid) + + [ Alexander Nitsch ] + * [31b87e9] Make the logo SVG square + The original SVG source isn't completely square, modifying the SVG file + so all generated other files from the input are also exactly square. + * [c0f19a3] Add script for generating PNGs from logo SVG + * [c153c5f] Update icon PNGs to be properly scaled + + [ Carsten Schoenert ] + * [c372e1f] d/source.filter: add some configure scripts + Filter out some files that are named 'configure', they are rebuild later + anyway. The filtering of these files is moved from gbp.conf to + source.filter. + (cherry-picked from debian/sid) + * [a40c5df] d/c-lightning-l10n-t.sh: drop version checking + Remove an old check for a version string within the file install.rdf. + It's not created any more by upstream since > 60.0. + * [05b325e] d/source.filter: don't ignore files in root folder + Try to not ignore files which are in the top root folder of the upstream + source tarball. + * [d2ca267] rebuild patch queue from patch-queue branch + added patch: + fixes/Bug-1515641-Turn-enable-av1-around.-r-nalexander.patch + + modified (refreshed) patches: + porting-armel/Avoid-using-vmrs-vmsr-on-armel.patch + porting-armel/Bug-1463035-Remove-MOZ_SIGNAL_TRAMPOLINE.-r-darchons.patch + porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-hurd.patch + porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-kfreebsd.patch + porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + porting-kfreebsd-hurd/Fix-GNU-non-Linux-failure-to-build-because-of-ipc-ch.patch + porting-kfreebsd-hurd/adding-missed-HURD-adoptions.patch + porting-kfreebsd-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-Hurd.patch + porting-m68k/Add-m68k-support-to-Thunderbird.patch + + removed patches (applied upstream): + fixes/Fix-big-endian-build-for-SKIA.patch + porting-kfreebsd-hurd/Fix-GNU-non-Linux-failure-to-build-because-of-ipc-ch.patch + porting-s390x/FTBFS-s390x-Use-jit-none-AtomicOperations-sparc.h-on-s390.patch + * [cb1dde9] d/control: increase version in B-D for libsqlite3-dev + * [54e8890] d/mozconfig.default: add new configure option + We need to disable the usage of libav1 for an successful build. The used + configure option was added by the new added patch to the patch queue. + * [ecd3ade] d/copyright: update after upstream changes + * [af58ed8] d/source.filter: add extra content to ignore + + -- Carsten Schoenert Sun, 17 Feb 2019 10:58:46 +0100 + +thunderbird (1:65.0~b1-1) experimental; urgency=medium + + * [e5956ef] Merge tag 'debian/1%60.4.0-1' into debian/experimental + * [389748b] d/source.filter: adjust files to filter while repack + Rework of the file filter list due new upstream version but also to no + filter out files we obviously need later, e.g. for the omni.jar archive. + * [4b86a78] New upstream version 65.0~b1 + * [3db29ed] rebuild patch queue from patch-queue branch + removed patches (fixed upstream): + debian-hacks/icu-use-locale.h-instead-of-xlocale.h.patch + debian-hacks/shellutil.py-ignore-tilde-as-special-character.patch + fixes/Build-also-gdata-provider-as-xpi-file.patch + fixes/Use-msse-2-fpmath-C-CXXFLAGS-only-on-x86_64-platforms.patch + porting-mips/Bug-1444303-MIPS-Fix-build-failures-after-Bug-1425580-par.patch + porting-mips/Bug-1444834-MIPS-Stubout-MacroAssembler-speculationBarrie.patch + porting-sparc64/Bug-1434726-Early-startup-crash-on-Linux-sparc64-in-HashI.patch + + removed patches (dropped for Debian specific build): + debian-hacks/Don-t-build-testing-suites-and-stuff.patch + debian-hacks/Don-t-build-testing-suites-and-stuff-part-2.patch + adjusted patches: + + debian-hacks/Add-another-preferences-directory-for-applications-p.patch + debian-hacks/stop-configure-if-with-system-bz2-was-passed-but-no-.patch + patches/fixes/Fix-big-endian-build-for-SKIA.patch (but currently disabled) + porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + porting-kfreebsd-hurd/adding-missed-HURD-adoptions.patch + porting-kfreebsd-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-Hurd.patch + porting-s390x/FTBFS-s390x-Use-jit-none-AtomicOperations-sparc.h-on-s390.patch + * [e918c6c] d/control: increase versions in B-D + New Thunderbirds version typically need other packages available with + higher versions like NSS, NSPR, rust ... + Also adding cbindgen and nodejs()!!). + * [b6c63bf] d/mozconfig.default: remove dead options + More old configure option are now not available anymore and we need to + drop them. + * [0f959ad] remove GCC specific options + LLVM's clang is now widely used, and clang isn't knowing the GCC options + '-fno-schedule-insns2' and '-fno-lifetime-dse', removing these options + from CFLAGS and CXXFLAGS. + * [d0b1f4b] d/rules: work around about strong quotings in .mk files + After the configuration of the source some Makefiles in the build folder + 'obj-thunderbird' have a strong qouting on some entries. This will + later provoke a build failure if we don't remove the single quotes + before in the Makefiles. + * [093053e] copyright: update after upstream changes + * [95eaacf] d/s/lintian-overrides: adjust overrides for needed files + + -- Carsten Schoenert Sun, 20 Jan 2019 15:48:06 +0100 + +thunderbird (1:60.4.0-1) unstable; urgency=medium + + * [2e5a9d0] d/control: don't hard code LLVM packages in B-D + (Closes: #912797) + * [3aaa4a6] New upstream version 60.4.0 + No MFSA published yet by Mozilla Security while packaging this version. + (Closes: #913645) + * [12d3be3] debian/control: increase Standards-Version to 4.3.0 + No further changes needed. + + -- Carsten Schoenert Mon, 24 Dec 2018 17:04:10 +0100 + +thunderbird (1:60.3.1-1) unstable; urgency=medium + + * [e1b489a] New upstream version 60.3.1 + * [f376b38] lightning: use ${source:Version} in Breaks and Recommends + (Closes: #914175) + * [7e560b3] Revert "lintian: adding a semi automated lintian-override" + The override about a misspelled word Synopsys isn't needed any more. + * [893c0e6] rebuild patch queue from patch-queue branch + modified patches: + debian-hacks/Don-t-build-testing-suites-and-stuff.patch + debian-hacks/Don-t-build-testing-suites-and-stuff-part-2.patch + * [20d8827] d/source.filter: update the filter sequences + + -- Carsten Schoenert Sun, 25 Nov 2018 10:02:50 +0100 + +thunderbird (1:60.3.0-1) unstable; urgency=medium + + [ intrigeri ] + * [7949b31] AppArmor: update profile from upstream at commit f3d9a8b + (Closes: #903898) + * [e31dc14] AppArmor: update profile from upstream at commit 81c9457 + (Closes: #908206) + + [ Carsten Schoenert ] + * [0dcbe22] d/control: add xul-ext-gnome-keyring to Breaks for thunderbird + (Closes: #907979) + * [65db00d] armel: adding extra LDFLAGS so rust compiler isn't confused + The settings that are builtin within rust are conflicting with the GCC. + * [9c65884] New upstream version 60.3.0 + Fixed CVE issues in upstream version 60.3.0 (MFSA 2018-28) + CVE-2018-12392: Crash with nested event loops + CVE-2018-12393: Integer overflow during Unicode conversion while loading + JavaScript + CVE-2018-12389: Memory safety bugs fixed in Firefox ESR 60.3 and + Thunderbird 60.3 + CVE-2018-12390: Memory safety bugs fixed in Firefox 63, Firefox ESR 60.3, + and Thunderbird 60.3 + * [8726bb1] rebuild patch queue from patch-queue branch + removed patches (included upstream) + fixes/Bug-1479540-Accept-triplet-strings-with-only-two-parts-in.patch + fixes/Bug-1492064-Disable-baseline-JIT-when-SSE2-is-not-support.patch + fixes/Bug-1492065-Use-Swizzle-fallback-when-SSE2-is-not-support.patch + porting-mips/Add-struct-ucred-for-Linux-on-MIPS.patch + + -- Carsten Schoenert Thu, 01 Nov 2018 12:19:34 +0100 + +thunderbird (1:60.2.1-1) unstable; urgency=medium + + * [ba75ca3] logo: move old TB graphics into dedicated folder + * [ba47234] logo: adding new TB icon *.png graphics + Like Firefox Thunderbird has also got a reworked logo. As we use some own + icon created from a SVG graphic this commit adds the new icons in the + various sizes. The source of the SVG graphic is taken from + https://demo.identihub.co/thunderbird#/view/icon/element/612 + (Closes: #909108) + * [0b16a87] d/source.filter: don't remove react files from source + (Closes: #909046) + * [d01dfd6] rebuild patch queue from patch-queue branch + added patches: + fixes/Bug-1479540-Accept-triplet-strings-with-only-two-parts-in.patch + fixes/Bug-1482248-don-t-crash-on-empty-file-name-in-nsMsgLocalS.patch + fixes/Bug-1492064-Disable-baseline-JIT-when-SSE2-is-not-support.patch + fixes/Bug-1492065-Use-Swizzle-fallback-when-SSE2-is-not-support.patch + (Closes: #909628, #909039, #906816) + * [bf64065] New upstream version 60.2.1 + Fixed CVE issues in upstream version 60.2.1 (MFSA 2018-25) + CVE-2018-12377: Use-after-free in refresh driver timers + CVE-2018-12378: Use-after-free in IndexedDB + CVE-2018-12379: Out-of-bounds write with malicious MAR file + CVE-2018-12376: Memory safety bugs fixed in Firefox 62 and Firefox ESR 60.2 + CVE-2018-12385: Crash in TransportSecurityInfo due to cached data + CVE-2018-12383: Setting a master password post-Firefox 58 does not delete + unencrypted previously stored passwords + * [b4712af] rebuild patch queue from patch-queue branch + removed patches (fixed upstream): + fixes/Bug-1482248-don-t-crash-on-empty-file-name-in-nsMsgLocalS.patch + * [79057f6] d/control: make lightning-l10n packages transitional + The l10n content for Lightning and a specific language is now much more + related to the Thunderbird l10n content. By this the existing lightning + l10n packages are not really useful any more as we move the Lightning + l10n content into the respective Thunderbird l10n package a we need to + turn the existing Lightning l10n packages into transitional packages. + * [a0ac3b7] d/control: adding Replaces, Breaks, Provides to thunderbird-l10n-* + Related to the previous commit the Thunderbird l10n packages need some + more fields in the control file so the transition from lightning-l10n into + thunderbird-l10n can work. + * [c82ee7c] d/rules: install lightning l10n into thunderbird-l10n-* packages + The content for the lightning l10n stuff needs now to be installed into + thunderbird-l10n packages. + * [72cd535] d/control: add thunderbird-l10n-cy + Oops, seems like we never have introduced this language for Thunderbird + before. Now required to provide the l10n content for Lightning. + * [510bea6] d/thunderbird-wrapper.sh: improve GDB switch + Since TB 60 upstream isn't installing the old wrapper script + run-mozilla.sh any more. By this we need to adjust our starting wrapper + so the call to start Thunderbird within the GDB debugger is working. + + -- Carsten Schoenert Fri, 05 Oct 2018 17:43:49 +0200 + +thunderbird (1:60.0-3) unstable; urgency=medium + + * [daa0dd7] locale: use 'intl.locale.requested' correctly + Thanks to hint from Sven Joachim we can use the preference setting + 'intl.locale.requested' in way that users don't need to use this setting + within their prefs.js to control the language of the Thunderbird UI. + 'intl.locale.requested' is somehow the successor of 'intl.locale.matchOS'. + (Closes: #908034) + * [f8ac1b2] debian/control: increase Standards-Version to 4.2.1 + No further changes needed. + * [a001579] d/control: remove empty 'Replaces' in thunderbird-l10n-da + We can remove that line of Replaces without any key. + + -- Carsten Schoenert Thu, 06 Sep 2018 18:46:31 +0200 + +thunderbird (1:60.0-2) unstable; urgency=medium + + [ Carsten Schoenert ] + * [71ac5e7] rebuild patch queue from patch-queue branch + added patches: + porting-mips/Add-struct-ucred-for-Linux-on-MIPS.patch + porting-mips/Bug-1444303-MIPS-Fix-build-failures-after-Bug-1425580-par.patch + porting-mips/Bug-1444834-MIPS-Stubout-MacroAssembler-speculationBarrie.patch + * [d94e5dc] d/control: B-D on {lib}clang-6.0* and llvm-6.0-dev + (Closes: #906707) + + -- Carsten Schoenert Mon, 20 Aug 2018 17:57:07 +0200 + +thunderbird (1:60.0-1) unstable; urgency=medium + + [ Cyril Brulebois ] + * [4f1fcd4] Bump B-D libsqlite3-dev version + Upstream requires a more recent version that is already available in + unstable but not in Stretch later e.g. + * [5a790c2] Add libicu-dev to Build-Depends (required for icu-i18n.pc) + This package was pulled from some other package already but we need this + explicit now again as we don't use the internal ICU version any more. + * [8c86207] Bump libhunspell-dev version + The same as for libsqlite3-dev, adding the correct B-D version. + (Closes: #905465) + + [ Carsten Schoenert ] + * [901f257] New upstream version 60.0 + Fixed CVE issues in upstream version 60.0 (MFSA 2018-19) + CVE-2018-12359: Buffer overflow using computed size of canvas element + CVE-2018-12360: Use-after-free when using focus() + CVE-2018-12361: Integer overflow in SwizzleData + CVE-2018-12362: Integer overflow in SSSE3 scaler + CVE-2018-5156: Media recorder segmentation fault when track type is + changed during capture + CVE-2018-12363: Use-after-free when appending DOM nodes + CVE-2018-12364: CSRF attacks through 307 redirects and NPAPI plugins + CVE-2018-12365: Compromised IPC child process can list local filenames + CVE-2018-12371: Integer overflow in Skia library during edge builder + allocation + CVE-2018-12366: Invalid data handling during QCMS transformations + CVE-2018-12367: Timing attack mitigation of PerformanceNavigationTiming + CVE-2018-5187: Memory safety bugs fixed in Firefox 61, Firefox ESR 60.1, + and Thunderbird 60 + CVE-2018-5188: Memory safety bugs fixed in Firefox 61, Firefox ESR 60.1, + Firefox ESR 52.9, and Thunderbird 60 + * [44ab834] rebuild patch queue from patch-queue branch + removed patches (applied upstream): + porting-arm64/Bug-1453892-Only-use-SkJumper-s-arm64-half-float-optimiza.patch + porting-arm64/Bug-1463036-Use-HAVE_ARM_NEON-instead-of-BUILD_ARM_NEON-f.patch + porting-armel/Bug-1463036-Add-mfloat-abi-softfp-to-NEON_FLAGS-when-it-m.patch + * [3168b29] debian/control: increase Standards-Version to 4.2.0 + No further changes needed. + * [f2f206e] d/rules: use MOZ_LANGPACK_ID instead of hard coding + * [996352a] d/rules: ensure l10n MOZ_LANGPACK_ID matches variable from + makefile + Previous beta versions for the thunderbird-l10n data have used + '@firefox.mozilla.org' within their application.id setting. Thunderbird + now expects '@thunderbird.mozilla.org' instead. Make the build more + flexible so we can detect mismatches here. + (Closes: #906176) + + -- Carsten Schoenert Sun, 19 Aug 2018 11:32:11 +0200 + +thunderbird (1:60.0~b10-1) experimental; urgency=medium + + [ intrigeri ] + * [596869d] AppArmor: update profile from upstream (at commit edc9487) + (Closes: #901471) + + [ Carsten Schoenert ] + * [57195ff] New upstream version 60.0~b10 + * [770c9a6] rebuild patch queue from patch-queue branch + added patches: + porting-arm64/Bug-1463036-Use-HAVE_ARM_NEON-instead-of-BUILD_ARM_NEON-f.patch + porting-armel/Avoid-using-vmrs-vmsr-on-armel.patch + porting-armel/Bug-1463035-Remove-MOZ_SIGNAL_TRAMPOLINE.-r-darchons.patch + porting-armel/Bug-1463036-Add-mfloat-abi-softfp-to-NEON_FLAGS-when-it-m.patch + * [7fa6ebd] debian/control: increase Standards-Version to 4.1.5 + No further changes needed. + * [22e701c] c-l-l10n-t.sh: adjust the path to the python helper + Adjust the shell script helper to use the changed path to makeversion.py. + * [90a1d9e] sticky prefs: use the new syntax in vendor.js + The syntax for locked preferences has been changed a while ago, it's + time to adjust the entry within vendor.js to disable automatic updates + for AddOns. + + -- Carsten Schoenert Thu, 12 Jul 2018 17:52:27 +0200 + +thunderbird (1:60.0~b9-2) experimental; urgency=medium + + [ intrigeri ] + * [eb7cb44] Revert "apparmor: allow access to @{HOME}/.gnupg/tofu.db" + * [4cd8baf] AppArmor: update profile from upstream + (Closes: #900840) + * [807eb99] AppArmor: update profile from upstream (at commit 104da32) + + [ Carsten Schoenert ] + * [c980546] rebuild patch queue from patch-queue branch + added patch: + porting-arm64/Bug-1453892-Only-use-SkJumper-s-arm64-half-float-optimiza.patch + + -- Carsten Schoenert Sun, 01 Jul 2018 19:15:00 +0200 + +thunderbird (1:60.0~b9-1) experimental; urgency=medium + + * [be64a3e] d/source.filter: update due upstream changes + Writing the import filter file source.filter mostly complete new from + scratch. Needed because upstream has changed the structure of the source + completely. + * [c4b9113] New upstream version 60.0~b9 + * [3dc900a] rebuild patch queue from patch-queue branch + Related to the changed source structure the patches for the patch queue + needs to be adjusted to the new folders and their structure. Thanks to + git this wasn't that painful as git did all of the job. Two new patches + are needed to add. + added patches: + fixes/Build-also-gdata-provider-as-xpi-file.patch + debian-hacks/Don-t-build-testing-suites-and-stuff-part-2.patch + * [e50ae04] d/rules: remove references to folder 'mozilla' + To get the source built some targets in debian/rules are needed to be + modified. All references to the old used folder 'mozilla/' are removed + now. + * [a650500] ICU: don't build the Paragraph Layout library + Disable the build of the Paragraph Layout library, we don't need them if + we need to built the ICU stuff. Cherry-picked from current ESR 52 + packaging. + * [977b7fe] d/mozconfig.default: use the ICU package from system + The Debian packages of icu are recent enough so we don't need to build + own dedicated ICU binaries. + * [0c7ed7e] adjust the configuration of the built + Because of the modified source structure some more adjustments are needed + while going through the built targets like different paths, and built + calls of the Thunderbird source. + * [1c09011] adjust the install temporary folder + Upstream is now wrapping all internal make calls through a Python wrapper + called 'mach'. This also involves a changed behavior for installing the + Thunderbird files into the temporary folder we later use by the debhelper + sequencer. + * [bfbc9ca] d/s/lintian-overrides: update content due changed source.filter + The modified file debian/source.filter make some adjustments needed in + the lintian-overrides file for the source files related part. + * [44a4c5a] d/thunderbird.lintian-overrides: update after config changes + Like before some adjustments are needed for the lintian override rules + for the source files. + * [dd48091] d/copyright: adjust the content due folder changes + And one more file that needs to be adjusted due the changed source files. + + -- Carsten Schoenert Sun, 01 Jul 2018 16:12:33 +0200 + +thunderbird (1:60.0~b6-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [3d91710] create-lightning-l10n: adjust folder structure + To build more easy lightning-l10n packages let's modify the helper script + for building the additional tarball. Change the content structure so we + can simple copy the needed l10n stuff into the l10n packages. + * [f1d6031] New upstream version 60.0~b6 + * [6643c31] Revert the linking into /u/l/tb/d/extensions + Thunderbird in Debian won't detecting extension which are placed in + /usr/lib/thunderbird/distribution/extensions, going back to the old + folder /usr/lib/thunderbird/extensions to link extensions into + Thunderbird. + * [26549a3] lightning: turning package into Architecture all + Change the architecture for the lightning package from 'any' to 'all'. + Lightning is only build by Javascript, CSS, JSM and other text based + files and we don't need to build and install it as a architecture + dependent package. + * [86cd48f] mozconfig.default: disable webrtc build and inclusion + Let's drop the build of support for WebRTC, Thunderbird isn't able to use + this as there is no component which is depending on this. The chat + component would be a potential use case but right now it lacks any + functionality by webrtc features. + + -- Carsten Schoenert Sat, 05 May 2018 13:56:36 +0200 + +thunderbird (1:60.0~b5-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [b8625ea] New upstream version 60.0~b5 + + -- Carsten Schoenert Sat, 28 Apr 2018 19:15:07 +0200 + +thunderbird (1:60.0~b4-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [62ae939] New upstream version 60.0~b4 + + -- Carsten Schoenert Mon, 23 Apr 2018 18:19:11 +0200 + +thunderbird (1:60.0~b3-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [94f8505] debian/control: increase Standards-Version to 4.1.4 + No further changes needed.f2f206eb34a619f7a684d1216fcd918454135d41 + * [3ba10c6] rebuild patch queue from patch-queue branch + added patches: + porting-sparc64/Bug-1434726-Early-startup-crash-on-Linux-sparc64-in-HashI.patch + fixes/Use-msse-2-fpmath-C-CXXFLAGS-only-on-x86_64-platforms.patch + fixes/Fix-big-endian-build-for-SKIA.patch (re-added) + Thanks Andreas Glaubitz for providing these patches! + * [dabf294] New upstream version 60.0~b3 + * [24f8a38] re-enable usage of lib{nspr4,nss3}-dev while built + The available versions of these libraries now recent enough so we can + drop the usage of the embedded code copies. + + -- Carsten Schoenert Sun, 15 Apr 2018 12:47:43 +0200 + +thunderbird (1:60.0~b2-1) experimental; urgency=medium + + [ Agustin Henze ] + * [3639717] apparmor: allow access to @{HOME}/.gnupg/tofu.db + (Closes: #894907) + + [ intrigeri ] + * [3895bba] AppArmor: fix empty black windows in Thunderbird 58+ + (Closes: #887973) + * [353ca25] AppArmor: update profile from upstream + (Closes: #882048, #882122) + + [ Carsten Schoenert ] + * [37e0bbe] New upstream version 59.0~b1 + * [d75c4be] rebuild patch queue from patch-queue branch + added patches: + fixes/Fix-build-against-libcairo2-dev-1.15.10.patch + patches/fixes/Fix-big-endian-build-for-SKIA.patch + + removed patches: + debian-hacks/Allow-usage-of-libnspr4-dev-4.16.patch + fixes/Bug-1418598-Make-cargo-linker-properly-handle-quoted-stri.patch + thunderbird/Thunderbird-fix-installdir-for-icons.patch + * [9615d6a] New upstream version 60.0~b1 + * [431006c] d/source.filter: update due upstream changes + Update the list of files we filter out, Upstream added various new files + mostly used for auto-testing we don't use. + * [2cb4635] d/s/lintian-overrides: remove entries about brace expansion + We can remove the override about brace expansion in dh sequencer files. + * [4c9f185] debian/rules: using 'rm -f' because probably non existing files + The file app.ini isn't existing in some l10n folders for lightning, + simply use '-f' for convenience. + * [ed00442] debian/rules: fix typo to grep app ID of calendar-g-p + * [4a993c5] adding additional packages to Breaks with thunderbird + The packages calendar-exchange-provider and enigmail + xul-ext-sogo-connector aren't compatible to the webextension interface + and we need to add a versioned Breaks. + * [9bd8286] adjust Breaks for enigmail + Also enigmail needs an adjusted version for Breaks. + * [24382c2] Revert "Use gcc-6 and g++-6 due broken GUI with GCC-7" + (Closes: #892404) + * [f0ac8a5] rebuild patch queue from patch-queue branch + removed patches: + debian-hacks/Allow-to-override-ICU_DATA_FILE-from-the-environment.patch + debian-hacks/remove-non-free-W3C-icon-valid.png.patch + fixes/Allow-.js-preference-files-to-set-locked-prefs-with-lockP.patch + fixes/Fix-build-against-libcairo2-dev-1.15.10.patch + + modified patches: + debian-hacks/Build-against-system-libjsoncpp.patch + debian-hacks/Don-t-build-testing-suites-and-stuff.patch + porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + porting-kfreebsd-hurd/adding-missed-HURD-adoptions.patch + * [6ab35ad] d/mozconfig.default: don't use nspr and nss from system + We need to switch back to the embedded source for NSS and NSPR, the + versions in unstable aren't usable. + * [055ed65] d/mozconfig.default: remove no longer alive option + The option '--enable-system-cairo' is gone with TB 60. + * [663d6f1] lightning-l10n-bn-bd: remove Bengali (Bangladesh) l10n package + * [02b21cb] lightning-l10n-pa-in: remove Punjabi (India) l10ng package + * [0cc0b5d] lightning-l10n-ta-lk: remove Tamil (Sri Lanka) l10n package + * [62f23a5] thunderbird-l10n-bn-bd: remove (Bangladesh) l10n package + * [61bfdf4] thunderbird-l10n-pa-in: remove Punjabi (India) l10n package + * [a361750] thunderbird-l10n-ta-lk: remove Tamil (Sri Lanka) l10n package + * [8ba5b0d] debian/control: add new packages for *-kk language + * [e4280ac] debian/control: add new packages for *-ms language + * [aaef9fe] adjust Vcs fields to salsa.debian.org + * [144c492, 009b145] debian/copyright: update after upstream changes + Upstream removed some files/folders, which reflects in needed adjustments + for the copyright file. + * [3623f84] d/thunderbird.lintian-overrides: add libnspr4.so and libnss3.so + We now need to ship (again) embedded libraries for NSPR and NSS. + * [0d3de65] lightning: move linking into /u/l/tb/distribution/extensions + Following upstream with the folder for the Lightning to not differ. + * [4d6cefe] New upstream version 60.0~b2 + * [e1c40a7] rebuild patch queue from patch-queue branch + removed patches: + fixes/Fix-big-endian-build-for-SKIA.patch + * [4834a1d] add entries to README and NEWS for thunderbird + Adding notes about the current situation foe the l10n packages and their + integration into the UI of Thunderbird and Lightning. + + -- Carsten Schoenert Sat, 07 Apr 2018 11:12:37 +0200 + +thunderbird (1:58.0~b3-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [d114338] d/source.filter: update due upstream changes + Update the filtering list for excluding some unwanted source files as + usual while preparing new major upstream versions. + * [91d23a9] New upstream version 58.0~b3 + * [f34e555] rebuild patch queue from patch-queue branch + added patches: + debian-hacks/Allow-usage-of-libnspr4-dev-4.16.patch + debian-hacks/icu-use-locale.h-instead-of-xlocale.h.patch + debian-hacks/shellutil.py-ignore-tilde-as-special-character.patch + fixes/Bug-1418598-Make-cargo-linker-properly-handle-quoted-stri.patch + + modified patches: + debian-hacks/Build-against-system-libjsoncpp.patch + debian-hacks/Don-t-build-testing-suites-and-stuff.patch + porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + porting-kfreebsd-hurd/adding-missed-HURD-adoptions.patch + porting-m68k/Add-m68k-support-to-Thunderbird.patch + porting-sh4/Add-sh4-support-to-Thunderbird.patch + porting/Disable-optimization-on-alpha-for-the-url-classifier.patch + prefs/Don-t-auto-disable-extensions-in-system-directories.patch + prefs/Set-javascript.options.showInConsole.patch + + obsolete patches (included somehow or fixed upstream): + debian-hacks/Force-use-the-i686-rust-target.patch + porting-alpha/FTBFS-alpha-adjust-some-source-to-prevent-build-issues.patch + patches/porting-alpha/fix-FTBFS-on-alpha.patch + patches/porting-arm64/Bug-1257055-Use-jit-arm64-Architecture-arm64.h-on-non-JIT.patch + patches/porting-hppa/FTBFS-hppa-xpcshell-segfaulting-during-make-install.patch + porting-kfreebsd-hurd/FTBFS-hurd-adding-GNU-Hurd-to-the-list-of-OS-systems.patch + porting-mips/FTBFS-mips-add-missing-char-variable.patch + porting/ppc-fix-divide-page-size-in-jemalloc.patch + thunderbird-l10n/thunderbird-l10n-disable-external-extension-update.patch + * [bd45d47] debian/control: adding new Build-Depends + Since this is the first version > 52 we need now cargo, clang, rustc and + llvm development files. + * [c63a03f] d/mozconfig.default: remove no longer alive options + Some old options like --disable-gnomeui, --enable-gio, and + --with-default-mozilla-five-home are history now. + * [609dbbe] l10n lightning: modify script to work with recent version + We still need to use the shellscript create-lightning-l10n-tarball.sh + (and also *-thunderbird-l10n-*) to create the additional tarballs. + * [2f276b7] thunderbird-l10n: change tb-l10n package installation + Due the changed structure from upstream for the thunderbird l10n files + the packaging needs also to be adopted. + * [ee476f8] d/thunderbird.install: update install sequencer file + Also small adjustments are needed for the installation of the thunderbird + binary files. The old script run-mozilla.sh (which we didn't have used + within the Debian packaging) isn't shipped now, and there is now a new + folder gtk2 which includes the libmozgtk library linked against GTK2. + * [ced9d18] thunderbird-dev: remove the package and adjustments on this + The complete content that was packaged previously in thunderbird-dev + isn't created and installed now. Thus makes the old package + thunderbird-dev obsolete. + * [484a142] autopkgtests: disable tests around thunderbird-dev + Disable all autopkgtests which have used thunderbird-dev. + * [0aa2546] switch to system libraries back + We can now use the system libararies libnspr4, libnss3 and libsqlite3 + again, the version of libicu is still to old for usage within the + package build. + * [858ae82] d/control: thunderbird, remove variable ${gnome:Depends} + * [7c3a258] d/control: lightning, remove variable ${shlibs:Depends} + * [aabf0d4] debian/source/lintian-overrides: update entries + * [94b00db] debian/control: increase Standards-Version to 4.1.3 + No further changes needed. + * [245e8c2] debian/copyright: update after upstream changes + Also almost needed with new major upstream versions reflect the + changes from upstream in the copyright file. + * [72507b2] d/control: enigmail < 1.9.9 isn't working with TB > 55 + Due the new plugin interface some old plugins doesn't work with this + thunderbird version anymore, or behaving unexpected. Enigmal is one of + the this (known) plugins which needs to be at least in version 2.0a2pre + installed to work with Thunderbird. + * [6cf0133] lightning-l1on: change l10n installation + Related to [4abc7f2] the various thunderbird-l10n packages need to be + installed differently to old package installations. + * [6af7054] calendar-google-provider: tweak installation a bit + More a hack but the Mozilla plugin installation by mozilla-devscripts + isn't prepared for the new webextension logic by Mozilla. Symlinking the + c-g-p plugin for now directly from the thunderbird extension folder. + + -- Carsten Schoenert Sun, 21 Jan 2018 14:03:39 +0100 + +thunderbird (1:52.9.1-1) unstable; urgency=high + + [ intrigeri ] + * [1259eaa] AppArmor: update profile from upstream (at commit edc9487) + (Closes: #901471) + + [ Carsten Schoenert ] + * [d706f5b] debian/control: increase Standards-Version to 4.1.5 + No further changes needed. + * [f5a3eb2] New upstream version 52.9.1 + (Closes: #903160) + + -- Carsten Schoenert Tue, 10 Jul 2018 19:40:41 +0200 + +thunderbird (1:52.9.0-1) unstable; urgency=high + + [ intrigeri ] + * [c33dba2] Revert "apparmor: allow access to @{HOME}/.gnupg/tofu.db" + * [cb64397] AppArmor: update profile from upstream (Closes: #900840) + * [b5d6545] AppArmor: update profile from upstream (at commit 104da32) + + [ Carsten Schoenert ] + * [099b525] d/source.filter: add some more files to filter + There are some more files we want to filter out. + * [376e5f3] New upstream version 52.9.0 + Fixed CVE issues in upstream version 52.9 (MFSA 2018-18) + CVE-2018-12359: Buffer overflow using computed size of canvas element + CVE-2018-12360: Use-after-free when using focus() + CVE-2018-12372: S/MIME and PGP decryption oracles can be built with HTML + emails + CVE-2018-12373: S/MIME plaintext can be leaked through HTML reply/forward + CVE-2018-12362: Integer overflow in SSSE3 scaler + CVE-2018-12363: Use-after-free when appending DOM nodes + CVE-2018-12364: CSRF attacks through 307 redirects and NPAPI plugins + CVE-2018-12365: Compromised IPC child process can list local filenames + CVE-2018-12366: Invalid data handling during QCMS transformations + CVE-2018-12374: Using form to exfiltrate encrypted mail part by pressing + enter in form field + CVE-2018-5188: Memory safety bugs fixed in Firefox 60, Firefox ESR 60.1, + Firefox ESR 52.9, and Thunderbird 52.9 + * [83a9c9b] rebuild patch queue from patch-queue branch + As we have filtered more files out from the source we need to modify the + list of tests we won't to built while built the source too so a small + adjustment on that. + Also fixing some spelling issues which Lintian has found. + modified patches: + debian-hacks/Don-t-build-testing-suites-and-stuff.patch + porting-alpha/fix-FTBFS-on-alpha.patch + porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + porting-kfreebsd-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-Hurd.patch + renamed patches: + Allow-to-override-ICU_DATA_FILE-from-the-environment.patch -> + Allow-one-to-override-ICU_DATA_FILE-from-the-environment.patch + fix-function-nsMsgComposeAndSend-to-to-respect-Replo.patch -> + fix-function-nsMsgComposeAndSend-to-respect-ReploToSend.patch + * [d5254e2] Removed unneded lintian override about brace expansion + + -- Carsten Schoenert Wed, 04 Jul 2018 21:44:26 +0200 + +thunderbird (1:52.8.0-1) unstable; urgency=high + + [ intrigeri ] + * [4656ebf] AppArmor: update profile from upstream + (Closes: #882048, #882122) + + [ Agustin Henze ] + * [840cbc8] apparmor: allow access to @{HOME}/.gnupg/tofu.db + (Closes: #894907) + + [ Carsten Schoenert ] + * [514e9e8] New upstream version 52.8.0 + Fixed CVE issues in upstream version 52.8 (MFSA 2018-13) + CVE-2018-5183: Backport critical security fixes in Skia + CVE-2018-5184: Full plaintext recovery in S/MIME via chosen-ciphertext + attack (aka Efail) + CVE-2018-5154: Use-after-free with SVG animations and clip paths + CVE-2018-5155: Use-after-free with SVG animations and text paths + CVE-2018-5159: Integer overflow and out-of-bounds write in Skia + CVE-2018-5161: Hang via malformed headers + CVE-2018-5162: Encrypted mail leaks plaintext through src attribute + (aka Efail) + CVE-2018-5170: Filename spoofing for external attachments + CVE-2018-5168: Lightweight themes can be installed without user + interaction + CVE-2018-5178: Buffer overflow during UTF-8 to Unicode string conversion + through legacy extension + CVE-2018-5185: Leaking plaintext through HTML forms (aka Efail) + CVE-2018-5150: Memory safety bugs fixed in Firefox 60, Firefox ESR 52.8, + and Thunderbird 52.8 + (Closes: #898631) + * [7845229] ICU: don't build the Paragraph Layout library + Disable the build of the layout library in the internal ICU build as we + don't need this and can cause build issues. + * [e0a79fc] debian/control: increase Standards-Version to 4.1.4 + No further changes needed. + + -- Carsten Schoenert Thu, 17 May 2018 21:04:15 +0200 + +thunderbird (1:52.7.0-1) unstable; urgency=medium + + * [9eb2692] New upstream version 52.7.0 + Fixed CVE issues in upstream version 52.7 (MFSA 2018-09) + CVE-2018-5127: Buffer overflow manipulating SVG animatedPathSegList + CVE-2018-5129: Out-of-bounds write with malformed IPC messages + CVE-2018-5144: Integer overflow during Unicode conversion + CVE-2018-5146: Out of bounds memory write in libvorbis + CVE-2018-5125: Memory safety bugs fixed in Firefox 59, Firefox ESR 52.7, + and Thunderbird 52.7 + CVE-2018-5145: Memory safety bugs fixed in Firefox ESR 52.7 and + Thunderbird 52.7 + * [a01cf4b] Revert "Use gcc-6 and g++-6 due broken GUI with GCC-7" + Switching now back to GCC7 as we don't have any longer issues with + broken visuals in the GUI. + (Closes: #892404) + + -- Carsten Schoenert Mon, 26 Mar 2018 17:21:40 +0200 + +thunderbird (1:52.6.0-1) unstable; urgency=high + + * [97e1cd7] New upstream version 52.6.0 + Fixed CVE issues in upstream version 52.6 (MFSA 2018-04) + CVE-2018-5095: Integer overflow in Skia library during edge builder + allocation + CVE-2018-5096: Use-after-free while editing form elements + CVE-2018-5097: Use-after-free when source document is manipulated + during XSLT + CVE-2018-5098: Use-after-free while manipulating form input elements + CVE-2018-5099: Use-after-free with widget listener + CVE-2018-5102: Use-after-free in HTML media elements + CVE-2018-5103: Use-after-free during mouse event handling + CVE-2018-5104: Use-after-free during font face manipulation + CVE-2018-5117: URL spoofing with right-to-left text aligned left-to-right + CVE-2018-5089: Memory safety bugs fixed in Firefox 58, Firefox ESR 52.6, + and Thunderbird 52.6 + * [0300242] rebuild patch queue from patch-queue branch + Added patch debian-hacks/icu-use-locale.h-instead-of-xlocale.h.patch + that fixes the build of the included ICU source against glibc 2.26. + (Closes: #887766) + * [4bf22e0] debian/control: increase Standards-Version to 4.1.3 + No further changes needed. + * [3616443] adjust Vcs fields to salsa.debian.org + The Vcs for Thunderbird packaging live now on Salsa as Alioth will be + shutdown in the future. + * [c2f3e14] lintian: ignore non multiarch install folder for thunderbird.pc + Ignore a lintian warning about unavailable pkg-config file thunderbird.pc + as the ESR versions 52.x are the last series which will have a + thunderbird-dev. The next ESR version will be 60.x which uses + webextension and makes thunderbird-dev obsolete. + + -- Carsten Schoenert Thu, 25 Jan 2018 20:21:10 +0100 + +thunderbird (1:52.5.2-2) unstable; urgency=medium + + [ Carsten Schoenert ] + * [f597157] Revert "d/thunderbird.postinst: reload AA profile on updates" + The trigger automatics for appamor already is handling the + needed reload on profile updates for the applications. + (Closes: #885158) + * [8ebdb96] debian/control: increase Standards-Version to 4.1.2 + No further changes needed. + * [81a8c00] use inverse logic on version for AA profile status check + By this change we don't enforce the disabled profile from the + previous version in some cases and can also handle possible + version strings from -security and -backports. + (Closes: #885157) + + -- Carsten Schoenert Tue, 26 Dec 2017 14:56:40 +0100 + +thunderbird (1:52.5.2-1) unstable; urgency=high + + [ intrigeri ] + * [b791221] AppArmor: support new thunderbird executable path + (Closes: #883561, #884217) + + [ Carsten Schoenert ] + * [1f46308] New upstream version 52.5.2 + Fixed CVE issues in upstream version 52.5 (MFSA 2017-30) + CVE-2017-7829: Mailsploit part 1: From address with encoded null character + is cut off in message header display + CVE-2017-7846: JavaScript Execution via RSS in mailbox:// origin + CVE-2017-7847: Local path string can be leaked from RSS feed + CVE-2017-7848: RSS Feed vulnerable to new line Injection + * [0dd21b9] d/thunderbird.postinst: reload AA profile on updates + * [8c57218] don't disable AA profile on package updates + As people want to re-enable the AA profile a update of + thunderbird doesn't have to disable this again. + (Closes: #884191) + + -- Carsten Schoenert Sun, 24 Dec 2017 11:30:09 +0100 + +thunderbird (1:52.5.0-1) unstable; urgency=high + + [ intrigeri ] + * [48e6b65] AppArmor: fix the Crash Reporter and avoid noisy denial logs + (Closes: #880953) + * [ad8b3b5] AppArmor: fix compatibility with NVIDIA hardware + (Closes: #880532) + * [d8ff6b6] Disable the AppArmor profile by default + Due the various side effects by the enabled AppArmor profile in + Thunderbird it's currently better for a user experience we + disabling the AppArmor profile for to not get people get mad with + to many broken things. + Users can always enable the profile by themselves again. + (Closes: #882672) + * [e50eac5] README.Debian: document how to opt-in for AppArmor confinement + * [860d325] README.Debian: document how one can debug the AppArmor profile + + [ Guido Günther ] + * [50a8f60] Drop myself from maintainers + Thank you Guido for always helping out if we had some questions! + + [ Carsten Schoenert ] + * [b64509b] New upstream version 52.5.0 + Fixed CVE issues in upstream version 52.5 (MFSA 2017-26) + CVE-2017-7828: Use-after-free of PressShell while restyling layout + CVE-2017-7830: Cross-origin URL information leak through Resource Timing API + CVE-2017-7826: Memory safety bugs fixed in Firefox 57, Firefox ESR 52.5, + and Thunderbird 52.5 + * [3166018] thunderbird.links: let thunderbird pointing to thunderbird-bin + (Closes: #856492) + * [6fff70c] [buster] tb-wrapper: searching the correct dbgsym package + * [4763ca6] adding a NEWS file for thunderbird package + Giving a note about the now disabled AppArmor profile. + * [0b9d656] disabling crashreporter for now + Also don't build and ship the Crashreporter any more, it's useless + until we can collect all symbols correctly. + * [a285647] move AppArmor specific things into own README file + Put all AppArmor related information into one dedicated file. + * [5d56439] d/thunderbird.js: prepare a line for extra X-Debbugs-Cc + A really old bug report ... building a compromise and put the + requested extra header config into the configuration file but keep + it deactivated as default. + (Closes: #379304) + + -- Carsten Schoenert Sun, 03 Dec 2017 19:58:57 +0100 + +thunderbird (1:52.4.0-2~exp1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [a3e73e9] disable usage of libgnomeui parts + The libgnomeui stuff (only relevant for GTK+2) is deprecated + for a long time and will be removed in buster, and we don't need + this at all. + See https://lists.debian.org/debian-devel/2017/10/msg00299.html + * [9efc5c9] debian/watch: switch to https + * [bd5a635] rebuild patch queue from patch-queue branch + Fixup for [da3c5cc], add ppc64 to the list of BE architectures. + Thanks Adrian Glaubitz for pointing the issue. (Closes: #879270) + * [42f5ab5] apparmor: update profile from upstream (Closes: #876333, #855346) + + [ intrigeri ] + * [d7febc8, b026d28] AppArmor: update profile from upstream + (Closes: #880425, #877324) + * [377e7b5] README.Debian: fixing small typo + * [3b0a63a] AppArmor: fix importing public OpenPGP keys from file + (Closes: #880715) + + [ Carsten Schoenert ] + * [241690e] d/control: s/Icedove/Thunderbird in desc's for lightning-l10n-* + The lightning-l10n package were still using the name 'Icdeove' + instead of 'Thunderbird'. + * [f17f735] debian/control: moving transitional packages at bottom + * [91f9897] autopkg: adjust icedove to thunderbird depends + Now move over to depend in favor of thunderbird for some of + the autopkg tests. + * [8ae2ad7] autopkg: adjust icedove-dev to thunderbird-dev depends + Doing the same as before for thunderbird-dev as the native + replacement for icedove-dev. + * [fa0134c] bump debhelper >= 10.2.5 + * [8752789] debian/rules: try to build extensions reproducible + The two extensions (lightning and calendar-google-provider) + don't build reproducible right now. Trying to fix this by using + the timestamp from the changelog entry for the files. May not + work correctly and we need to tune more. + * [1496368] d/thunderbird.install: also install the fonts folder + Recent versions of Thunderbird needing the font EmojiOne which + isn't provided by any other package. + (Closes: #881299) + + The following changes are take effect in removing all transitional packages + related to the old icedove packaging only for buster. We still need all the + transitional packages in wheezy, jessie and stretch! + * [54c8a9b] [buster] remove transitional iceowl-l10n-* packages + * [c338630] [buster] remove Replace, Breaks and Provides for iceowl-l10n-* + * [4311683] [buster] remove transitional icedove-l10n-* packages + * [f6e3a01] [buster] remove Replace, Breaks and Provides for icedove-l10n-* + * [a9117e4] [buster] remove transitional iceowl-extension package + * [5aed012] [buster] remove Replace, Breaks and Provides for iceowl-extension + * [27fc04b] [buster] remove transitional icedove-dbg package + * [53b4825] [buster] remove transitional icedove-dev package + * [e2d808f] [buster] remove Replace, Breaks and Provides for icedove-dev + * [97edfbe] [buster] remove transitional icedove package + * [3748054] [buster] remove Replace and Breaks for icedove + * [611a704] [buster] move thunderbird-dbg into *-dbgsym package + + -- Carsten Schoenert Sun, 12 Nov 2017 16:01:07 +0100 + +thunderbird (1:52.4.0-1) unstable; urgency=medium + + [ Guido Günther ] + * [da3c5cc] Simplify endianness selection for ICU + Since we need to build ICU on the various Debian releases we + need to ensure the architecture detection isn't to strict. + Thanks Guido for helping out here! + + [ Carsten Schoenert ] + * [47748ca] debian/control: be more relaxed on Breaks for enigmail + * [6a54666] thunderbird-wrapper: fix small typo in help output + A small typo was happen in the example call with the JS console. + * [6d5266e] README.Debian: update info around tls fallback-limit + The default behavior on the TLS fallback has changed some + versions ago, document this accordingly. + * [24ad883] debian/control: change maintainer + Thanks Christoph for the work over the past years! + * [c78200e] debian/control: move src pkg name to thunderbird + By this version we move the source package name also back to + thunderbird. This follows the changes that are already made to + the binary package names and we can call the source package now + also again thunderbird. + (Closes: #857075) + * [c26133d] debian/gbp.conf: rename components to real used names + Due the changes of the source package the names for the + sub-folders within the additional tarballs can also be changed + to be closer on the real upstream used names. + * [a5ce4f7] New upstream version 52.4.0 + (Closes: #878845, #878870) + Fixed CVE issues in upstream version 52.4 (MFSA 2017-23) + CVE-2017-7793: Use-after-free with Fetch API + CVE-2017-7818: Use-after-free during ARIA array manipulation + CVE-2017-7819: Use-after-free while resizing images in design mode + CVE-2017-7824: Buffer overflow when drawing and validating elements with + ANGLE + CVE-2017-7805: Use-after-free in TLS 1.2 generating handshake hashes + CVE-2017-7814: Blob and data URLs bypass phishing and malware protection + warnings + CVE-2017-7825: OS X fonts render some Tibetan and Arabic unicode characters + as spaces + CVE-2017-7823: CSP sandbox directive did not create a unique origin + CVE-2017-7810: Memory safety bugs fixed in Firefox 56 and Firefox ESR 52.4, + and Thunderbird 52.4 + * [104b4e5] rebuild patch queue from patch-queue branch + * [d63662a] lintian: move oldlibs/extra -> oldlibs/optional + By moving all transitional package to oldlibs/optional we can + help deborphan to detect better not needed packages. + * [fb56001] d/rules: reflect changes from renamed component tarballs + The additional tarballs are stored in folders which reflect + the upstream names of those components. This also needs to be + respected for the build instructions of the package. + * [61288fb] debian/control: change Vcs* fields due the src name change + Addressing the changed source package name in the Git Vcs urls. + * [ef95ab5] debian/control: increase Standards-Version to 4.1.1 + No further changes needed. + * [45e8fe2] apparmor: update profile from upstream + Thanks to Simon Deziel and intrigeri we can simply use the + apparmor profile changes done for the Ubuntu releases. + * [6b1649c] lintian: adding a override for thunderbird-l10n-all + * [ceab93f] debian/README.source: reflect src package name change + + -- Carsten Schoenert Tue, 17 Oct 2017 18:20:29 +0200 + +icedove (1:52.3.0-4) unstable; urgency=medium + + [ Carsten Schoenert ] + * [3ddf57b] rebuild patch queue from patch-queue branch + * [3bd845d] debian/control: increase Standards-Version to 4.1.0 + + -- Carsten Schoenert Tue, 29 Aug 2017 16:17:24 +0200 + +icedove (1:52.3.0-3) unstable; urgency=medium + + [ Carsten Schoenert ] + * [c08f005] rebuild patch queue from patch-queue branch + * [f658cab] debian/rules: enable verbose build for ICU + + -- Carsten Schoenert Mon, 28 Aug 2017 19:44:07 +0200 + +icedove (1:52.3.0-2) unstable; urgency=medium + + [ Carsten Schoenert ] + * [d544a01] debian/rules: correct icu build sequence + + -- Carsten Schoenert Tue, 22 Aug 2017 18:57:36 +0200 + +icedove (1:52.3.0-1) unstable; urgency=medium + + [ Carsten Schoenert ] + * [8e852be] New upstream version 52.3.0 + Fixed CVE issues in upstream version 52.3 (MFSA 2017-20) + CVE-2017-7800: Use-after-free in WebSockets during disconnection + CVE-2017-7801: Use-after-free with marquee during window resizing + CVE-2017-7809: Use-after-free while deleting attached editor DOM node + CVE-2017-7784: Use-after-free with image observers + CVE-2017-7802: Use-after-free resizing image elements + CVE-2017-7785: Buffer overflow manipulating ARIA attributes in DOM + CVE-2017-7786: Buffer overflow while painting non-displayable SVG + CVE-2017-7753: Out-of-bounds read with cached style data and + pseudo-elements + CVE-2017-7787: Same-origin policy bypass with iframes through page reloads + CVE-2017-7807: Domain hijacking through AppCache fallback + CVE-2017-7792: Buffer overflow viewing certificates with an extremely + long OID + CVE-2017-7804: Memory protection bypass through WindowsDllDetourPatcher + CVE-2017-7791: Spoofing following page navigation with data: protocol and + modal alerts + CVE-2017-7782: WindowsDllDetourPatcher allocates memory without DEP + protections + CVE-2017-7803: CSP containing 'sandbox' improperly applied + CVE-2017-7779: Memory safety bugs fixed in Firefox 55, Firefox ESR 52.3, + and Thunderbird 52.3 + * [0b7243b] debian/rules: build icudt5*.dat on our own if needed + If we need to use the internal sources of ICU (triggered by + using --with-system-icu) we need to build the platform depended file + icudt*[b,l].dat before we can call the configure run. + This is needed as Mozilla only ships a precompiled little endian version + of the file icudt*.dat and all platforms with big endianness are failing + later due issues related to the wrong endianness. + * [1964469] debian/mozconfig.default: enable i18n on big endian + * [6b58ac5] debian/control: increase Standards-Version to 4.0.1 + * [e59cf81] rebuild patch queue from patch-queue branch + removed patche(s) (applied upstream): + - fixes/Bug-1308908-Compare-the-whole-accessible-name-when-checki.patch + updated/refreshed patches (no changes): + - porting-kfreebsd-hurd/adding-missed-HURD-adoptions.patch + + [ Simon Deziel ] + * [a574010] apparmor/usr.bin.thunderbird: small update to avoid noise + + -- Carsten Schoenert Sat, 19 Aug 2017 18:27:19 +0200 + +icedove (1:52.2.1-5) unstable; urgency=high + + [ Carsten Schoenert ] + * [133a574] Use gcc-6 and g++-6 due broken GUI with GCC-7 + The usage of the GCC-7 suite introduces a broken GUI currently that make + using thunderbird mostly impossible. + (Closes: #871629) + * [3ebacd1] d/rules: use DEB_* variables for entries from changelog + By using variables that are prepared by dpkg we don't need to manually + search for dates and versions. etc. + * [52c2b83] d/copyright: MPL-1.1 and MPL-2.0 now provided by common-licenses + Since policy 4.0.0 the two Mozilla related licenses are included and don't + need to be added extra. + * [3f37967] adjust X-Debian-Homepage to existing Thunderbird page + * [41b5c03] debian/control: increase Standards-Version to 4.0.0 + * [e3c3994] mozconfig.default: use proper disabled options + * [2d4b846] debian/control: increase Breaks for enigmail version + (Closes: #869789) + + [ John Paul Adrian Glaubitz ] + * [4879401] sh4: disable option --disable-pie (Closes: #867553) + + [ Carsten Schoenert ] + * [2646f3f] autpkgtests: disable the idlTest.sh test case + + -- Carsten Schoenert Fri, 11 Aug 2017 22:02:47 -0400 + +icedove (1:52.2.1-4) unstable; urgency=medium + + [ Guido Günther ] + * [04de899] Don't use different profile folder for jessie and wheezy + + [ Carsten Schoenert ] + * [692d3ce] rebuild patch queue from patch-queue branch (Closes: #867013) + added patch (provided by Adrian): + - porting-alpha/FTBFS-alpha-adjust-some-source-to-prevent-build-issues.patch + removed patch: + - porting-hurd/FTBFS-hurd-adding-GNU-to-the-configure-platform-detection.patch + (wrong approach, the Python wrapper around configure isn't yet smart enough) + + [ John Paul Adrian Glaubitz ] + * [5153ce2] mips: final fixups to prevent FTBFS + + -- Carsten Schoenert Thu, 06 Jul 2017 16:53:30 +0200 + +icedove (1:52.2.1-3) unstable; urgency=medium + + [ John Paul Adrian Glaubitz ] + * [99b323a] d/mozconfig.default: fixups for --without-intl-api + + -- Carsten Schoenert Sat, 01 Jul 2017 10:18:05 +0200 + +icedove (1:52.2.1-2) unstable; urgency=medium + + [ Carsten Schoenert ] + * [e8ce299] disabling ICU support on some big endian systems + This hack should enable at least successful building of all RC platforms + and needs to be solved in a not such agressive way without loosing ICU + support on the problematic platforms. + Thanks John Paul Adrian Glaubitz for catching the root of the issue. + * [a66e812] rebuild patch queue from patch-queue branch + Adding a small needed fix for getting mips* out od FTBFS. Also GNU/Hurd + should pass the configure script now. + + -- Carsten Schoenert Fri, 30 Jun 2017 19:38:28 +0200 + +icedove (1:52.2.1-1) unstable; urgency=medium + + [ Guido Günther ] + * [4e87d6b] d/rules: Make sure DIST is not passed on to configure + + [ Carsten Schoenert ] + * [35b84ef] rebuild patch queue from patch-queue branch + added patches: + - porting-mips/Fix-CPU_ARCH-test-for-libjpeg-on-mips.patch + - porting-s390x/FTBFS-s390x-Use-jit-none-AtomicOperations-sparc.h-on-s390.patch + (Closes: #864974) + * [c818874] New upstream version 52.2.1 + (Closes: #861840) + * [8c776c9] Icedove2Thunderbird: add opt out for dialogue pop-up + (Closes: #860381) + + -- Carsten Schoenert Wed, 28 Jun 2017 20:01:44 +0200 + +icedove (1:52.2.0-1) unstable; urgency=medium + + [ Christoph Goehre ] + * [9ebc11d] mozconfig.default: remove configure option + '--disable-methodjit' on armel + This options isn't alive any more and was forgotten to removed on the + previous upload. + [ Simon Deziel ] + * [d8e5d42] usr.bin.thunderbird: merge gpg(1) and gpg2 subprofiles + (Closes: #859179) + * [f18884e] usr.bin.thunderbird: allow accessing gpgconf in gpg subprofile + * [e73afbb] usr.bin.thunderbird: allow accessing any gpg2keys providers + + [ Carsten Schoenert ] + * [066ddb9] mozconfig.default: switch back to internal libjpeg + Going back and using the libjpeg library that's shipped by Mozilla, the + system library probably provoking broken builds on various platforms. + As we prepare the uploads for (old-)stable-security we need to use the + internal libjpeg library at all. + * [ff92bfa] rebuild patch queue from patch-queue branch + modified patches: + - porting-m68k/Add-m68k-support-to-Thunderbird.patch + - porting-sh4/Add-sh4-support-to-Thunderbird.patch + (Closes: #859271, #859508) + * [0a89f76] New upstream version 52.2.0 + Fixed CVE issues in upstream version 52.2 (MFSA 2017-17) + CVE-2017-5472: Use-after-free using destroyed node when regenerating trees + CVE-2017-7749: Use-after-free during docshell reloading + CVE-2017-7750: Use-after-free with track elements + CVE-2017-7751: Use-after-free with content viewer listeners + CVE-2017-7752: Use-after-free with IME input + CVE-2017-7754: Out-of-bounds read in WebGL with ImageInfo object + CVE-2017-7756: Use-after-free and use-after-scope logging XHR header + errors + CVE-2017-7757: Use-after-free in IndexedDB + CVE-2017-7778: Vulnerabilities in the Graphite 2 library + CVE-2017-7758: Out-of-bounds read in Opus encoder + CVE-2017-7764: Domain spoofing with combination of Canadian Syllabics and + other unicode blocks + CVE-2017-5470: Memory safety bugs fixed in Firefox 54 and Firefox ESR 52.2, + and Thunderbird 52 + * [e03380e] rebuild patch queue from patch-queue branch + modified patch: + - porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + + -- Carsten Schoenert Fri, 16 Jun 2017 20:37:06 +0200 + +icedove (1:52.1.1-1) experimental; urgency=medium + + [ Guido Günther ] + * [db8d0db] Tighten meta package dependencies + Be more strict on depends and add a version to all related + Thunderbird specific packages. + * [defb689] Copy-edit thunderbird-wrapper-helper.sh + * [54b35d4] Allow one to override the location of the wrapper-helper + Make $TB_HELPER more flexible and give the variable a default value, so a + user can override it with it's own. + * [a187364] dh-exec: avoid multiple spaces around filenames + * [a85bc7a] thunderbird-wrapper: robustness when sourcing helper + * [eee56ab] Drop replaces on packages no longer in any release + + [ Carsten Schoenert ] + * [1d85980] rebuild patch queue from patch-queue branch + added patches: + - porting-mk68/Add-m68k-support-to-Thunderbird.patch + - porting-sparc64/Add-sparc64-support-to-Thunderbird.patch + (Closes: #859151, #859271) + * [2717849] tb-wrapper: call thunderbird starting with exec + (Closes: #858100) + * [8afa31b] d/gbp.conf: adjust upstream branch to new ESR version + * [43d2e70] New upstream version 52.1.1 + Fixed CVE issues in upstream version 52.1 (MFSA 2017-09) + CVE-2017-5413: Segmentation fault during bidirectional operations + CVE-2017-5414: File picker can choose incorrect default directory + CVE-2017-5416: Null dereference crash in HttpChannel + CVE-2017-5426: Gecko Media Plugin sandbox is not started if seccomp-bpf + filter is running + CVE-2017-5418: Out of bounds read when parsing HTTP digest authorization + responses + CVE-2017-5419: Repeated authentication prompts lead to DOS attack + CVE-2017-5405: FTP response codes can cause use of uninitialized values + for ports + CVE-2017-5421: Print preview spoofing + CVE-2017-5422: DOS attack by using view-source: protocol repeatedly in one + hyperlink + CVE-2017-5399: Memory safety bugs fixed in Thunderbird 52 + Fixed CVE issues in upstream version 52.1 (MFSA 2017-13) + CVE-2017-5433: Use-after-free in SMIL animation functions + CVE-2017-5435: Use-after-free during transaction processing in the editor + CVE-2017-5436: Out-of-bounds write with malicious font in Graphite 2 + CVE-2017-5461: Out-of-bounds write in Base64 encoding in NSS + CVE-2017-5459: Buffer overflow in WebGL + CVE-2017-5466: Origin confusion when reloading isolated data:text/html URLs + CVE-2017-5434: Use-after-free during focus handling + CVE-2017-5432: Use-after-free in text input selection + CVE-2017-5460: Use-after-free in frame selection + CVE-2017-5438: Use-after-free in nsAutoPtr during XSLT processing + CVE-2017-5439: Use-after-free in nsTArray Length() during XSLT processing + CVE-2017-5440: Use-after-free in txExecutionState destructor during XSLT + processing + CVE-2017-5441: Use-after-free with selection during scroll events + CVE-2017-5442: Use-after-free during style changes + CVE-2017-5464: Memory corruption with accessibility and DOM manipulation + CVE-2017-5443: Out-of-bounds write during BinHex decoding + CVE-2017-5444: Buffer overflow while parsing application/http-index-format + contents + CVE-2017-5446: Out-of-bounds read when HTTP/2 DATA frames are sent with + incorrect data + CVE-2017-5447: Out-of-bounds read during glyph processing + CVE-2017-5465: Out-of-bounds read in ConvolvePixel + CVE-2016-10196: Vulnerabilities in Libevent library + CVE-2017-5454: Sandbox escape allowing file system read access through + file picker + CVE-2017-5469: Potential Buffer overflow in flex-generated code + CVE-2017-5445: Uninitialized values used while parsing + application/http-index-format content + CVE-2017-5449: Crash during bidirectional unicode manipulation with + animation + CVE-2017-5451: Addressbar spoofing with onblur event + CVE-2017-5462: DRBG flaw in NSS + CVE-2017-5467: Memory corruption when drawing Skia content + CVE-2017-5430: Memory safety bugs fixed in Firefox 53, Firefox ESR 52.1, + Thunderbird 52.1 + CVE-2017-5429: Memory safety bugs fixed in Firefox 53, Firefox ESR 45.9, + Firefox ESR 52.1, and Thunderbird 52.1 + (Closes: #855344, #495372, #861480, #682208, #698244, #859909, #857593, + #837771) + * [de561ef] rebuild patch queue from patch-queue branch + added patches: + - debian-hacks/Allow-to-override-ICU_DATA_FILE-from-the-environment.patch + - debian-hacks/Build-against-system-libjsoncpp.patch + - debian-hacks/Don-t-build-testing-suites-and-stuff.patch + - debian-hacks/Force-use-the-i686-rust-target.patch + - fixes/Bug-1308908-Compare-the-whole-accessible-name-when-checki.patch + (Closes: #826325) + - porting-sh4/Add-sh4-support-to-Thunderbird.patch + (Closes: #859508) + removed patches (obsoleted by upstream changes): + - debian-hacks/Don-t-build-example-component.patch + - debian-hacks/fix-identification-of-ObjdirMismatchException.patch + - fixes/Bug-1245076-Don-t-include-mozalloc.h-from-the-cstdlib-wra.patch + - fixes/Bug-1273020-Add-missing-null-checks-in-ApplicationAccessi.patch + - fixes/Bug-1277295-Remove-obsolete-reference-to-storage-service-.patch + - fixes/Bug-1340724-fix-SMTP-server-name-output-in-SMTP-logging.-.patch + - fixes/Bug-497488-Implement-verify-mode-in-the-subscribe-dialog-.patch + - fixes/Bug-497488-RSS-feeds-with-an-invalid-certificate-fail-wit-1.patch + - fixes/Bug-497488-RSS-feeds-with-an-invalid-certificate-fail-wit.patch + - porting-arm64/Bug-1091515-Don-t-set-64KB-page-size-on-aarch64.-r-glandi.patch + - porting-kfreebsd-hurd/CrossProcessMutex.h-fix-build-on-kfreebsd-and-GNU-hurd.patch + - porting-kfreebsd-hurd/FTBFS-hurd-adding-the-HURD-platform-to-the-configure.patch + - porting-kfreebsd-hurd/correcting-file-inclusion-for-kfreebsd-and-hurd.patch + - porting-mips/Fix-build-error-in-MIPS-SIMD-when-compiling-with-mfp.patch + - porting-mips/libyuv_disable-mips-assembly-for-MIPS64.patch + - porting-powerpcspe/FTBFS-powerpcspe-disable-AltiVec-instructions.patch + - porting-sparc64/Add-sparc64-support-to-Thunderbird.patch + (unclear state, will be added later again) + - porting/Add-xptcall-support-for-SH4-processors.patch + (Closes: #859362) + - debian-hacks/Move-profile.patch + modified or adjusted patches: + - debian-hacks/changing-the-default-search-engine.patch + - debian-hacks/stop-configure-if-with-system-bz2-was-passed-but-no-.patch + - icedove-l10n/disable-extension-update-extension-is-managed-by-apt.patch + --> icedove-l10n/thunderbird-l10n-disable-external-extension-update.patch + (renamed to and modified due new languages) + - icedove/fix-installdir.patch + --> debian-hacks/Thunderbird-fix-installdir-for-icons.patch + * [684ad58] d/source.filter: update due upstream changes + * [d005649] debian/control: modify various B-D + * [7a8a98d] debian/rules: add some extra C*FLAGS + Adding '-fno-lifetime-dse' to not enable dead store elimination of + objects within their lifetime, some parts of the source is relying + on the persistent values of such objects. + Some other distributions as Ubuntu, Fedora and Arch e.g. use this flag too + (at least with ESR52) to prevent possible segfaults. + * [56f8f4b] debian/rules: adding hack to preserve correct config.status + * [fb500a6] mozconfig.default: remove no longer existing options + * [c9a3e60] mozconfig.default: some minor adjustments to configure options + * [f584857] mozconfig.default: enable GTK3 theme explicit + (Closes: #857593) + * [3cbe1fb] debian/control: add packages for *-dsb language + * [8317735] debian/control: add packages for *-hsb language + * [39d90c1] debian/control: add packages for *-kab language + * [82b4f50] debian/control: add missing packages for *-ast language + * [0edde96] debian/rules: include also l10n folder with 3 characters + * [47f17a4] lintian-overrides: modify the list for the js files to ignore + * [8872d34] debian/copyright: update after upstream changes + * [6755547] mozconfig.default: use some internal libraries + Use libicu-dev, libnspr4-dev, libnss3-dev, libsqlite3-dev from + shipped source as Stretch versions not recent enough. + * [5b04b32] thunderbird.install: pick up icu*.dat if around + * [edf24d7] debian/control: mark thunderbird-dbg as Multi-Arch: same + * [5d5392b] apparmor/usr.bin.thunderbird: update for version 52 + (cherry-picked from upstream) + (Closes: #859179) + * [f49ad79] apparmor/usr.bin.thunderbird: grant access to commonly used + locations (cherry-picked from upstream) + * [510fd6f] debian/rules: install lightning-l10n files into correct place + * [d70ade4] lightning-l10n: adjust min/max version for ESR 52 cycle + With the new ESR version tweaking the extension version of l10n packages + for lightning > 52.0 and < 52.*. + * [c0dd18f] debian/rules: install icudt5*.dat file more flexible + * [b5136f7] autopkg: improve the output of idlTest.sh + * [7ac04f6] autopkg: add extra test icudatfileTest.sh + + [ Christoph Goehre ] + * [13f5178] lintian-overrides: we build against internal nspr and nss + * [56bbf23] rebuild patch queue from patch-queue branch + added patches: + - porting-sparc64/Add-sparc64-support-to-Thunderbird.patch + (Closes: #859151) + modified patches: + - porting-mk68/Add-m68k-support-to-Thunderbird.patch + -> porting-m68k/Add-m68k-support-to-Thunderbird.patch (renamed) + * [6a7ef60] tests/idlTest.sh: remove duplicated 'done' output + * [42bf8e1] debian/rules: remove duplicate .so files in thunderbird-dev + * [5dc08bc] tests/soSymlinkTest.sh: check for symlinked .so files + + -- Carsten Schoenert Sat, 03 Jun 2017 19:54:43 +0200 + +icedove (1:45.8.0-3) unstable; urgency=medium + + [ Carsten Schoenert ] + * [d923505] AppArmor: be more flexible on profile folders + (Closes: #858735, #858737) + * [1e04099] tb-wrapper: use readlink also on ${ID_PROFILE_FOLDER} + (Closes: #858771) + * [9f6b771] tb-wrapper: correct check for -dbg package (Closes: #858804) + * [8b5271a] rebuild patch queue from patch-queue branch + added patches: + - fixes/Bug-1273020-Add-missing-null-checks-in-ApplicationAccessi.patch + + -- Christoph Goehre Wed, 29 Mar 2017 19:28:32 -0400 + +icedove (1:45.8.0-2) unstable; urgency=medium + + [ Carsten Schoenert ] + * [c2a1d77] tb-helper: pass arguments correctly through tb call + (Closes: #855334) + * [5c49348] rebuild patch queue from patch-queue branch + added patches: + - fixes/Bug-1340724-fix-SMTP-server-name-output-in-SMTP-logging.patch + (Closes: #855470) + * [9d420c0] Revert "register MIME type application/octet-stream for + Thunderbird" (Closes: #857755) + * [c9960e5] tb-helper: pass arguments by using a array to TB call + + -- Christoph Goehre Tue, 14 Mar 2017 20:37:48 -0400 + +icedove (1:45.8.0-1) unstable; urgency=medium + + [ Carsten Schoenert ] + * [3388899] New upstream version 45.8.0 + * [24d25e9] tb-helper*: fix up that silly comments behind the if statement + (Closes: #857029, #857032, #857098, #857112) + * [788b7fa] bash-completion: adding a completion script for /u/b/thunderbird + * [9ac9d07] rebuild patch queue from patch-queue branch + added patches: + - p-arm64/Bug-1091515-Don-t-set-64KB-page-size-on-aarch64.-r-glandi.patch + - p-arm64/Bug-1257055-Use-jit-arm64-Architecture-arm64.h-on-non-JIT.patch + * [ad0860b] copyright: small updates reflecting upstream changes + + [ Christoph Goehre ] + * [69577cf] lintian: replace hardlink in thunderbird-dev with symbolic link + + -- Christoph Goehre Thu, 09 Mar 2017 20:24:49 -0500 + +icedove (1:45.7.1-2) unstable; urgency=medium + + [ Christoph Goehre ] + * [5e2c618] crashreporter: build only on amd64, armel, armhf and i386 + * [36a922f] Apparmor: replace '·' with spaces (Closes: #855343) + * [bbbc917] rebuild patch queue from patch-queue branch + added patches: + - p-hppa/FTBFS-hppa-xpcshell-segfaulting-during-make-install.patch + * [8b5d601] icedove|thunderbird.desktop: update danish (da) translation + + [ Carsten Schoenert ] + * [f8debbd] debian/control: separate transitional mark by extra line + (Closes: #855806) + * [583c798] {tb,id}.maintscript: modify start-version (Closes: #854587) + * [94e557c] thunderbird: adding x11-utils to Depends (Closes: #854488) + * [dc878e7] thunderbird-wrapper.sh: fix command line transfer to TB + (Closes: #855334) + * [9734349] thunderbird helper: split helper function into extra file + (Closes: #855286) + * [3089a97] tb-helper*: wrapping X11 dialog calls + * [e0331e1] tb-helper*: rework option parsing for wrapper script + (Closes: #855872) + * [31d9899] thunderbird.postinst: try to remove empty profile folder + (Closes: #855228) + * [c9e5b70] tb-wrapper*: complete rework and moving over for symlinking + (Closes: #855265, #855391, #855501, #856490) + * [9ef920f] README.Debian: adopt content to current wrapper script behavior + * [4cf88e5] icedove|thunderbird.desktop: adopt binary call + * [101e0ad] tb-helper*: call subfunctions not within the case loop + * [c061107] register MIME type application/octet-stream for Thunderbird + + -- Christoph Goehre Mon, 06 Mar 2017 20:39:23 -0500 + +icedove (1:45.7.1-1) unstable; urgency=medium + + * Bye-bye Icedove (Closes: #749965, #776359, #816679, #363811) + + [ Carsten Schoenert ] + * [90c0d6f] New upstream version 45.7.1 + * [a6d21de] rebuild patch queue from patch-queue branch + added patches: + - fixes/Bug-497488-Implement-verify-mode-in-the-subscribe-dialog-.patch + - fixes/Bug-497488-RSS-feeds-with-an-invalid-certificate-fail-wit-1.patch + - fixes/Bug-497488-RSS-feeds-with-an-invalid-certificate-fail-wit.patch + (Closes: #837177) + removed patches (fixed upstream): + - debian-hacks/icu.m4-adding-extra-bracket-to-not-confuse-grep.patch + * [8572e34] lintian: adding a semi automated lintian-override + * [aa2bda2] crashreporter: enable the reporter for thunderbird + * [b96ae57] move icedove.desktop into package icedove + (Closes: #850865, #851829) + * [304921f] debian/rules: set SHELL explicit to /bin/bash (Closes: #852867) + * [072b899] thunderbird: adding extra check while migration + * [284912d] debian/README.Debian: update after recent changes + * [6dc7e32] icedove-l10n-bn-bd: fix typo in Depends field (Closes: #854135) + * [c5d4bf5] {tb,id}.maintscript: modify start-version (Closes: #854587) + * [f3d64ae] thunderbird-wrapper.sh: adding extra information window + (Closes: #854488) + * [6b432c7] README.Debian: hint about issue in global configuration + + [ Douglas Bagnall ] + * [e2c8a23] Apparmor: allowing exo-open-ixr launcher (Closes: #853929) + + [ Christoph Goehre ] + * [ef36e0b] thunderbird-wrapper.sh: fix typos + * [f98d5d1] thunderbird-wrapper.sh: add small changes from Guido and Carsten + * [7dd6841] README.Debian: fix/correct spelling + * [e038694] debian/control: remove depends-on-essential-package 'sed' + + [ Jens Reyer ] + * [ea58e17] thunderbird-wrapper.sh: add extra function for migration + (Closes: #849592) + + -- Christoph Goehre Tue, 14 Feb 2017 18:46:23 -0500 + +icedove (1:45.6.0-3) experimental; urgency=medium + + [ Carsten Schoenert ] + * [78b3296] rebuild patch queue from patch-queue branch + added patch: + - debian-hacks/icu.m4-adding-extra-bracket-to-not-confuse-grep.patch + * [a272f85] thunderbird-wrapper.sh: also migrate mimeapps.list + (Closes: #850864) + * [3d4e303] icedove.desktop: don't use categories and mimetypes + (Closes: #850866) + * [db15d43] icedove: link icedove to thunderbird + * [59a9e05] debian/control: change Replaces and Breaks versions + + [ Christoph Goehre ] + * [55cce4a] thunderbird-wrapper.sh: remove 'set -e' + + -- Christoph Goehre Tue, 17 Jan 2017 18:26:06 -0500 + +icedove (1:45.6.0-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [26f8f2d] New upstream version 45.6.0 + * [15b7797] iceowl-l10n-*: rearrange Recommends field for various packages + (Closes: #824727, #824750, #824763, #824764, #824768, #824780) + * [3f75b56] debian/vendor.js: adjust to new version related wiki site + * [6bd7f89] d/c-id-l10n: adjusting download URL for stable versions + * [f15d1a2] icedove-l10n-all: change Section into metapackages + (Closes: #824785) + * [25c3ba1] debian/README.source: info about import of multitarballs + * [3ebcf59] debian/control: adding Recommends to icedove-l10n-uk + (Closes: #825806) + * [3e57d5e] debian/control: Icedove, adding dependency on libatk-adaptor + * [e19c59d] debian/control: rework Recommends for icedove-l10n-* + * [4741d80] debian/control: small fixup Recommends on iceowl-l10n-* + * [f9f5193] debian/control: sort iceowl-l10n-* alphabetical + * [5220187] de-branding: move iceowl* back to lightning* + * [6e28ce5] de-branding: remove Icedove naming from icedove-l10n* + * [3dc3b4b] de-branding: remove Icedove branding in the main binary + * [8b715cf] de-branding: remove hard name branding in addon managger + * [9f609fa] de-branding: adopting dh files for icedove package + * [caba322] de-branding: adopting dh files for icedove-dev package + * [6538f66] de-branding: change debian/rules to reflect appname change + * [871588d] de-branding: adopting dh files for iceowl-extension package + * [a0b20e7] debian/tests/*: adopt change of the binary icedove + * [29025cc] de-branding: adjust icedove-l10n installation folder + * [2b8dd99] de-branding: adjust iceowl-l10n installation folder + * [1f3043c] de-branding: remove the Debian visual branding + * [272e420] de-branding: removing icedove branding files and folder + * [093bc58] de-branding: revitalize *.desktop file with Thunderbird + * [4a35d9d] de-branding: move iceowl-l10n-* into lightning-l10n-* + * [68d8d79] de-branding: adding transitional iceowl-l10n packages + * [4b2febd] de-branding: adding 'Breaks', 'Replaces', 'Provides' to + lightning-l10n-* + * [9cdb427] de-branding: rework d/r to reflect changes for lightning-l10n + * [ec3b427] de-branding: move icedove-l10n-* into thunderbird-l10n-* + * [387bfa2] de-branding: adding transitional icedove-l10n packages + * [f3cfecb] de-branding: adding 'Breaks', 'Replaces', 'Provides' to + thunderbird-l10n-* + * [03b222e] de-branding: rework d/r to reflect changes for thunderbird-l10n + * [0c9a6ab] de-branding: (re)adding a wrapper script for TB starting + * [f9c8aef] de-branding: move icedove-dev to thunderbird-dev + * [a4313e6] de-branding: adding transitional icedove-dev package + * [0508866] de-branding: rework d/r to reflect changes for thunderbird-dev + * [048b29f] de-branding: move icedove-dbg to thunderbird-dbg + * [da01077] de-branding: adding transitional icedove-dbg package + * [a371079] de-branding: rework d/r to reflect changes for thunderbird-dbg + * [b34b8f8] de-branding: move iceowl-extension to lightning + * [fa8f9b3] de-branding: adding transitional iceowl-extension package + * [848f178] de-branding: rework d/r to reflect changes for lightning + * [a708c35] de-branding: move icedove to thunderbird + * [cccef90] de-branding: moving icedove dh files into thunderbird + * [8c2b27d] de-branding: rework icedove.1 into thunderbird.1 + * [19406fe] de-branding: transition of mozconfig.* + * [88ed684] de-branding: rework d/r to reflect changes for thunderbird + * [c8011d3] de-branding: adding transitional icedove package + * [5e399aa] de-branding: adjusting package calendar-google-provider + * [a03329c] debian/tests/help.sh: use absolute path for binary call + * [10adb34] move old icedove graphic stuff into own folder + * [abc6c8c] create various thunderbird png graphics from SVG file + * [a2067ae] debian/copyright: update copyright information + * [a9c6f9f] de-branding: add own created thunderbird icons to install + * [1d8b524] mozconfig.default: enable the official brandind + * [9f3a673] debian/control: adding dh-exec to the Build-Depends + * [cddbc63] move Thunderbird install files into thunderbird.install + * [5037bb5] de-branding: transition of apparmor profile for TB + * [14f094d] de-branding: remove extra URL for What's New inside + * [c2a06db] manpage thunderbird; adjust and correct manpage entries + * [8fa3365] debian/control: adding package dpkg to Build-Depends + * [ba84ede] thunderbird: switching dpkg-maintscript-helper to *.maintscript + * [d0e675b] debian/thunderbird.postinst: adding some moving mechanism + * [cbae415] de-branding: let helper scripts reflect thunderbird change + * [da402a4] thunderbird-wrapper.sh: adding fixing inside mimeTypes.rdf + (Closes: #837516) + * [030d49e] de-branding: adding some hints about the debranding + * [662f7af] debian/README.source: adjusting hints due name changes + * [8fbedc1] debian/thunderbird.install: install additional icedove.desktop + * [9089d9f] debian/*lintian-overrides: adopt name changes + * [b9b7665] debian/rules: use the old profile folder for wheezy and jessie + * [f9c137e] fix *.desktop files for proper GNOME app mechanism + (Closes: #817973, #832302) + * [1c85ff7] debian/rules: chmod certain *.py tb-devel files + * [356694a] thunderbird.links: linking the default TB icon to u/s/p + + [ Guido Günther ] + * [24bbee9] Wrap and sort control information (Closes: #825806) + * [fcfe4ac] Add minimalistic autopkgtest + * [f7a32e8] Add autopkgtest to test header and typelib generation + * [189d835] Add autopkgtest to smoke test xpcshell + + [ Christoph Goehre ] + * [354f836] turn the reduce of memory usage of the linker on again + * [5e48e17] don't build dbgsym packages on unreleased builds + * [09679eb] rebuild patch queue from patch-queue branch (Closes: #808183) + * [ec3a50b] debian/NEWS: change urgency to medium + + -- Christoph Goehre Sat, 31 Dec 2016 10:26:36 +0100 + +icedove (1:45.5.1-1) unstable; urgency=medium + + [ Carsten Schoenert ] + * [efe836f] New upstream version 45.5.1 + * [48999ac] rebuild patch queue from patch-queue branch + + -- Carsten Schoenert Wed, 30 Nov 2016 18:27:57 +0100 + +icedove (1:45.4.0-1) unstable; urgency=medium + + [ Guido Günther ] + * [a159bc9] autopkgtests: let xfvb-run pick the port to avoid clashes with + already running servers + * [5384838] Snapshot 1:45.3.0-1~1.gbpa159bc + * [8d3ac18] autopkgtest: Dont print on stderr + * [8afc7be] Put test deps on a simgle line + + [ Carsten Schoenert ] + * [99e9c40] New upstream version 45.4.0 + (Closes: #835866, #836798, #837107) + * [6195d7b] debian/README.source: update instructions for importing + * [5150624] debian/icedove.js: disabling baselinejit functionality + (Closes: #837930) + + -- Carsten Schoenert Mon, 03 Oct 2016 12:18:09 +0200 + +icedove (1:45.3.0-1) unstable; urgency=medium + + [ Carsten Schoenert ] + * [3cc29ee] Imported Upstream version 45.3.0 + * [ed8cf89] Imported icedove-l10n Upstream version 45.3.0 + * [bc20676] Imported iceowl-l10n Upstream version 45.3.0 + * [54bd9c4] debian/README.source: fix up some hints + * [756ec86] mozconfig.default: enable build of PIE binaries + * [1cef6f8] rebuild patch queue from patch-queue branch + added patch: + - porting-mips/libyuv_disable-mips-assembly-for-MIPS64.patch + (Closes: #836400) + * [7a1ec74] AppArmor: grant access to local mailboxes and enigmail(2) + (Closes: #837656) + + -- Carsten Schoenert Wed, 28 Sep 2016 22:52:03 +0200 + +icedove (1:45.2.0-4) unstable; urgency=medium + + [ Carsten Schoenert ] + * [cc8cd76] mozconfig.default: relaxe optimization on arm{64,el,hf} to -O1 + + -- Christoph Goehre Thu, 18 Aug 2016 10:45:17 -0400 + +icedove (1:45.2.0-3) unstable; urgency=medium + + [ Guido Günther ] + * [9a8f4e1] tests: Fix typo + + [ Carsten Schoenert ] + * [53aab10] AppArmor: allow self execution for -ProfileManager + (Closes: #833742) + * [a459d6a] debian/rules: adding one more CFLAGS/CXXFLAGS compiler flag + (Closes: #833864, #833532, #833591, #833635, #833698) + * [e32c460] AppArmor: grant access to local mailboxes and enigmail + (Closes: #833184) + * [f34e41e] debian/rules: fix typo CXLAGS -> CFLAGS + + -- Christoph Goehre Fri, 12 Aug 2016 12:00:44 -0400 + +icedove (1:45.2.0-2) unstable; urgency=medium + + [ Christoph Goehre ] + * [8b4f306] rebuild patch queue from patch-queue branch + added patches: + - p-kfree-hurd/CrossProcessMutex.h-fix-build-on-kfreebsd-and-GNU-hur.patch + (Closes: #808183) + + [ Carsten Schoenert ] + * [08e20a0] rebuild patch queue from patch-queue branch + added patches: + - fixes/Bug-1277295-Remove-obsolete-reference-to-storage-service-.patch + (Closes: #827592) + - fixes/Bug-1245076-Don-t-include-mozalloc.h-from-the-cstdlib-wra.patch + (Closes: #831192) + * [1ea97f1] debian/icedove.js: disable Icedove startup check + (Closes: #817973) + * [83bdcdf] debian/rules: adding additional CFLAGS and CXXFLAGS + * [7dc0588] debian/control: addjust breaks for xul-ext-foxyproxy-standard + (Closes: #825749) + * [50a0f1e] autopkg: fixup small type within test call + + [ Ulrike Uhlig ] + * [b24bbaa] Add rebranded apparmor profile from upstream (Closes: #829731) + * [0a28f91] apparmor/usr.bin.icedove: refresh Icedove AppArmor profile + + [ Guido Günther ] + * [6fe4897] Fix apparmor profile installation + + -- Christoph Goehre Tue, 26 Jul 2016 13:25:21 -0400 + +icedove (1:45.2.0-1) unstable; urgency=medium + + [ Guido Günther ] + * [f777843] Wrap and sort control information + via 'wrap-and-sort -ast' to simplify backporting (Closes: #825806) + * [457dffe] Register components with gbp + * [8e73822] Rediff patches + + [ Carsten Schoenert ] + * [789ed6f] Imported Upstream version 45.1.1 + * [8b8bd3c] Imported icedove-l10n Upstream version 45.1.1 + * [23b2984] Imported iceowl-l10n Upstream version 45.1.1 + * [411b27d] Imported Upstream version 45.2.0 + * [975287a] Imported icedove-l10n Upstream version 45.2.0 + * [09b6652] Imported iceowl-l10n Upstream version 45.2.0 + * [2b99997] icedove-l10n-all: change Section into metapackages. + As Jonas Smedegaard pointed out, the icedove-l10n-all package is a + metapackage and localization. + (Closes: #824785) + * [a7eec24] debian/README.source: info about import of multitarballs. + As the VCS is using git-buildpackage for package maintenace adding some + hints on how to handle the impoert of the used mutitarballs since + version 45.0. + * [73e8b1a] debian/control: adding Recommends to icedove-l10n-uk + (Closes: #825806) + * [f118470] debian/control: Icedove, adding dependency on libatk-adaptor. + After the adding of some first small autopkg test it turns out that we + miss a dependency on libatk-adaptor. + * [e6e95c9] debian/control: rework Recommends for icedove-l10n-* + As addition to 711468b933f280fe9d6ed78bb1d7d763dede9ea7 also rework the + various Recommends for the icedove-l10n packages. + * [1275b3d] debian/control: small fixup Recommends on iceowl-l10n-* + Fix small typos for iceowl-l10n-{pt-pt,sl} + * [c4c9a02] debian/control: sort iceowl-l10n-* alphabetical + + -- Guido Günther Fri, 08 Jul 2016 15:55:46 +0200 + +icedove (1:45.2~b1-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [68883af] rebuild patch queue from patch-queue branch + added patches: + - porting-kfreebsd-hurd/adding-missed-HURD-adoptions.patch + * [ee509d2] debian/mozconfig.default: switching back to gtk2 as default + (Closes: #821744) + * [f72fe06] adding helper script create-iceowl-l10n-tarball.sh + * [28fba93] debian/README.source: adding additional info for iceowl-l10n + * [826af5b] adding iceowl-l10n related patches to the patch queue + * [1aa6f37] debian/iceowl-*.in: adding needed base files + * [a5946b4] debian/rules: adding iceowl-l10n related rules + * [b1da616] debian/control: adding the current iceowl-l10n-* packages + * [b359c95] debian/source.filter: some adjustments to the filter + * [e45ab44] debian/README.source: use recent version and reformating + * [50b3830] debian/control: increase Standards-Version to 3.9.8 + * [3a767b8] debian/rules: remove no longer needed LDFLAGS + * [29a7739] Imported Upstream version 45.2~b1 + * [15b7797] iceowl-l10n-*: rearrange Recommends field for various packages + (Closes: #824727, #824750, #824763, #824764, #824768, #824780) + * [3f75b56] debian/vendor.js: adjust to new version related wiki site + * [6bd7f89] d/c-id-l10n: adjusting download URL for stable versions + * [f15d1a2] icedove-l10n-all: change Section into metapackages + (Closes: #824785) + * [25c3ba1] debian/README.source: info about import of multitarballs + * [3ebcf59] debian/control: adding Recommends to icedove-l10n-uk + (Closes: #825806) + * [3e57d5e] debian/control: Icedove, adding dependency on libatk-adaptor + * [e19c59d] debian/control: rework Recommends for icedove-l10n-* + * [4741d80] debian/control: small fixup Recommends on iceowl-l10n-* + * [f9f5193] debian/control: sort iceowl-l10n-* alphabetical + + [ Christoph Goehre ] + * [ce58560] debian/rules: add option to dh_auto_clean + * [8cfbeca] debian/rules: export necessary DEB_ vars into environment + (Closes: #819020) + * [7512da8] debian/rules: ignore build folder and run 'build' target instead + (Closes: #819020) + * [354f836] turn the reduce of memory usage of the linker on again + * [5e48e17] don't build dbgsym packages on unreleased builds + * [09679eb] rebuild patch queue from patch-queue branch + added patches: + - p-kfree-hurd/CrossProcessMutex.h-fix-build-on-kfreebsd-and-GNU-hu.patch + (Closes: #808183) + + [ Guido Günther ] + * [24bbee9] Wrap and sort control information (Closes: #825806) + * [fcfe4ac] Add minimalistic autopkgtest + * [f7a32e8] Add autopkgtest to test header and typelib generation + * [189d835] Add autopkgtest to smoke test xpcshell + + -- Christoph Goehre Wed, 01 Jun 2016 17:56:29 -0400 + +icedove (1:45.0~b4-2) experimental; urgency=medium + + * [fa7bc47] debian/control: fix FTBFS by moving Build-Depends-Indep to + Build-Depends + + -- Christoph Goehre Sun, 10 Apr 2016 15:24:39 -0400 + +icedove (1:45.0~b4-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [3bf50c7] Imported Upstream version 45.0~b4 + * [11744a7] debian/source.filter: fixup for previous change + * [0bd3753] debian/gbp.conf: adding default filter out pattern + * [a9f6cfa] rebuild patch queue from patch-queue branch + removed patches (fixed upstream): + - fixes/Bug-1178266-Link-against-libatomic-when-necessary.patch + - p-arm64/FTBFS-arm64-Adding-configure-option-for-aarch64-platform.patch + - p-mips/FTBFS-mips-adoptions-to-get-build-on-mips-el-working-1-4.patch + - p-mips/FTBFS-mips-adoptions-to-get-build-on-mips-el-working-2-4.patch + - p-mips/FTBFS-mips-adoptions-to-get-build-on-mips-el-working-3-4.patch + - p-mips/FTBFS-mips-adoptions-to-get-build-on-mips-el-working-4-4.patch + modified patches: + - p-kfreebsd-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-Hurd.patch + * [9dcb46e] debian/control: increase B-D on libnspr-dev + * [b31fba5] debian/control: increase Standards-Version to 3.9.7 + * [623250d] Icedove Branding: adopt usptream changes to branding + * [2fa9b24] debian/copyright: update copyright information + * [c5dd11d] debian/copyright: include the license text for MPL-1.0 + * [3a90ecd] debian/copyright: include the license text for MPL-1.1 + * [7291650] debian/copyright: include the license text for MPL-2.0 + * [0ebdd3f] debian/copyright: include the license text for libpng + * [9ee79fa] d/icedove.install: remove no longer existing parts + * [880c9e9] debian/rules: remove obsolet dpkg-shlibdeps call + * [e4fb8a2] adding helper script create-icedove-l10n-tarball.sh + * [8826951] debian/README.source: adding hint for creating l10n tarball + * [08f9071] debian/control: adding the current icedove-l10n-* packages + (Closes: #680488) + * [d839f37] debian/rules: adding icedove.l10n install to targets + * [5b0df21] debian/gbp.conf: use a Tuple for selecting multiple files + * [e32519f] debian/control: increase B-D on libnss-dev + * [2200691] debian/control: increase B-D on libnspr4-dev + * [0f5660e] debian/control: increase increase B-D on libnss3-dev + * [5fd8af8] mozconfig.default: adding new configure option + * [e288c6e] debian/control: adding a B-D on libpng-dev + + [ Christoph Goehre ] + * [f8c7ca5] debian/control: make depends between icedove-l10n and icedove + dynamic + * [ac760d7] debian/control: add section localization to all l10n packages + * [72ef6c7] debian/NEWS: rename to icedove.NEWS to ship only in icedove core + package + * add epoch in version number to update l10n packages smoothly + + -- Christoph Goehre Sat, 09 Apr 2016 18:56:59 -0400 + +icedove (44.0~b1-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [a24f78b] Imported Upstream version 44.0~b1 + * [7f52453] rebuild patch queue from patch-queue branch + removed patches: + - d-hacks/Add-unminified-jquery-and-jquery-ui-files.patch + - d-hacks/Allow-unsigned-addons-in-usr-lib-share-mozilla-extensions.patch + - d-hacks/creating-a-dummy-.deps-directory-to-get-make-happy.patch + added patches: + - p-arm64/FTBFS-arm64-Adding-configure-option-for-aarch64-platform.patch + - p-mips/FTBFS-mips-adoptions-to-get-build-on-mips-el-working-1-4.patch + - p-mips/FTBFS-mips-adoptions-to-get-build-on-mips-el-working-2-4.patch + - p-mips/FTBFS-mips-adoptions-to-get-build-on-mips-el-working-3-4.patch + - p-mips/FTBFS-mips-adoptions-to-get-build-on-mips-el-working-4-4.patch + modified patches: + - porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + * [ecf1110] debian/watch: adjust to new CDN structure + * [dd5efe8] debian/control: increase Build-Depends on libsqlite3-dev + * [57165b5] debian/control: switch URI for the Vcs fields to https + * [c9ded96] debian/source.filter: adding more filters on testings js files + * [31ce42f] debian/copyright: update due upstream/import changes + + -- Christoph Goehre Sat, 13 Feb 2016 19:08:55 -0500 + +icedove (43.0~b1-1) experimental; urgency=medium + + [ Christoph Goehre ] + * [ef5b1ef] debian/rules: split override_dh_install into arch and indep + section (Closes: #806047) + * [02d5d7c] debian/source.filter: remove filter for searchplugins + + [ Guido Günther ] + * [2008a71] Clarify relation between icedove and the calendar extensions + (Closes: #809017) + + [ Carsten Schoenert ] + * [11ffac0] debian/source.filter: modifying file list to ignore + * [926912b] Imported Upstream version 43.0~b1 + * [32cd8c0] rebuild patch queue from patch-queue branch + added patches: + - d-hacks/Allow-unsigned-addons-in-usr-lib-share-mozilla-extensions.patch + removed patches (fixed upstream): + - reproducible/Generate-sorted-libical-header-list.patch + * [a1637e4] debian/control: increase B-D on libnspr-dev and libnss3-dev + * [f9937c1] debian/source.filter: sort entries alphabetical + * [326f74d] debian/source.filter: adding new files to filter out + * [9b9d9b9] debian/copyright: update due upstream changes + * [69664c7] d/icedove.install: searchplugins isn't alive anymore + + -- Christoph Goehre Tue, 19 Jan 2016 11:41:50 -0500 + +icedove (42.0~b2-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [8842d85] Imported Upstream version 42.0~b2 + * [6d14aca] rebuild patch queue from patch-queue branch + added patches: + - fixes/Bug-1178266-Link-against-libatomic-when-necessary.patch + * [320c43d] add myself to the uploaders + * [797a290] lintian: remove icedove.menu file due CTTE#741573 + + [ Guido Günther ] + * [caca7c2] Add unminified jquery and jquery-ui files (Closes: #802281) + + -- Christoph Goehre Sun, 08 Nov 2015 15:30:56 -0500 + +icedove (42.0~b1-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [c599b6b] Imported Upstream version 42.0~b1 + * [41285cb] debian/copyright: fixup's and update + * [6b270be] debian/control: increase various build depends + * [be75969] adopting needed changes for GTK3 into the Debian branding + * [245161e] fixup branding about.png file + + -- Christoph Goehre Sat, 10 Oct 2015 21:26:24 -0400 + +icedove (41.0~b2-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [b1d982c] Imported Upstream version 41.0~b2 + * [8389b9b] rebuild patch queue from patch-queue branch + added patches: + - porting-mips/Fix-build-error-in-MIPS-SIMD-when-compiling-with-mfp.patch + modified patches: + - icedove/fix-branding-in-migration-wizard-and-the-addon-manag.patch + - porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + dropped patches (fixed upstream): + - fixes/Bug-1168231-Fixup-to-keep-file-type.patch + - fixes/Bug-1168231-Normalize-file-mode-in-jars.patch + - reproducible/Bug-1166243-Remove-build-function-from-js-and-xpc-sh.patch + - reproducible/Bug-1168316-Remove-build-machine-name-from-about-bui.patch + * [9ebf7b9] debian/source.filter: modifying file list to ignore + * [b25d990] debian/copyright: fixup's and update + + [ Christoph Goehre ] + * [8ebffb0] relax optimize to -O1 on s390x (Closes: #797551) + * [dea1627] debian/rules: Disable jit on mips (Closes: #797548) + + -- Christoph Goehre Fri, 25 Sep 2015 18:43:44 -0400 + +icedove (40.0~b1-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [9d358dc] debian/source.filter: adjust new files + * [328cdc7] Imported Upstream version 40.0~b1 + * [8813d89] debian/rules: setting MOZ_BUILD_DATE explicitly. + This patch is based on work from Mike Hommey within the Iceweasel + package to enable reproducible builds. It defines the MOZ_BUILD_DATE + with a pre defined timezone. + * [8dd5b9f] debian/rules: add switch to skip icedove-dbg build to + speed up the build. + * [a6beec7] debian/control: Let icedove recommendiceowl-extension + * [691dfe9] add release related information + * [bdfdfd8] debian/vendor.js: adjusting WhatNew link to more dedicated URL + * [5ba6ec7] rebuild patch queue from patch-queue branch + added patches: + debian-hacks/changing-the-default-search-engine.patch + fixes/Bug-1168231-Fixup-to-keep-file-type.patch + fixes/Bug-1168231-Normalize-file-mode-in-jars.patch + reproducible/Bug-1166243-Remove-build-function-from-js-and-xpc-sh.patch + reproducible/Bug-1168316-Remove-build-machine-name-from-about-bui.patc + reproducible/Generate-sorted-libical-header-list + modified patches: + fixes/Allow-.js-preference-files-to-set-locked-prefs-with-.patch + porting-kfreebsd-hurd/FTBFS-hurd-adding-the-HURD-platform-to-the-configure.patch + porting-kfreebsd-hurd/LDAP-support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch + porting/Disable-optimization-on-alpha-for-the-url-classifier.patch + deleted patches: + debian-hacks/pass-OS_LDFLAGS-to-all-ldap-libraries.patch + debian-hacks/remove-timestamps-from-c_cpp-macros-for-reproducibil.patch + debian/patches/fixes/Link-libldap-against-libpthread.patch + debian/patches/icedove/no-dynamic-nss-softokn.patch + debian/patches/porting/Remove-duplicate-SkDiscardableMemory_none.cpp-from-g.patch + * [59046ae,12d4f4b] debian/copyright: update due upstream changes + * [7c1f002] debian/iceowl-extension.lintian-overrides: remove file, no longer needed + * [23eed8c] debian/source.lintian-overrides: adding new entries. + Lintian is detecting the braces within the folder names incorrectly as + brace expansion. + * [2f95cd3] add changes due ldap restructure. + + [ Christoph Goehre ] + * [ff66528] lintian: fix spelling error in debian/README.Debian + + -- Guido Guenther Wed, 19 Aug 2015 09:39:23 +0200 + +icedove (38.7.2-1) unstable; urgency=medium + + * [397cd7a] Imported Upstream version 38.7.2 + + -- Christoph Goehre Wed, 13 Apr 2016 12:05:05 -0400 + +icedove (38.7.0-1) unstable; urgency=medium + + [ Christoph Goehre ] + * [cb9c003] Imported Upstream version 38.7.0 + * [7273cb9] bump up standards version to 3.9.7 (no changes needed) + + [ Carsten Schoenert ] + * [0341a8c] debian/control: switch URI for the Vcs fields to https + + -- Christoph Goehre Wed, 16 Mar 2016 13:22:57 +0100 + +icedove (38.6.0-1) unstable; urgency=medium + + [ Guido Günther ] + * [195730d] Clarify relation between icedove and the calendar extensions + (Closes: #809017) + + [ Christoph Goehre ] + * [988ce5b] Imported Upstream version 38.6.0 + * [6763f6f] debian/source.filter: remove evil-licensed jshint.js + (Closes: #813053) + + -- Christoph Goehre Sun, 14 Feb 2016 16:08:13 -0500 + +icedove (38.5.0-1) unstable; urgency=medium + + [ Christoph Goehre ] + * [6d45b0b] Imported Upstream version 38.5.0 + * [316798f] debian/rules: split override_dh_install into arch and indep + section (Closes: #806047) + + [ Carsten Schoenert ] + * [5b3cb7a] add myself to the uploaders + + -- Christoph Goehre Thu, 24 Dec 2015 22:36:37 -0500 + +icedove (38.4.0-1) unstable; urgency=medium + + [ Christoph Goehre ] + * [754392e] Imported Upstream version 38.4.0 + * [ef4b733] debian/watch: adjust download url + + [ Carsten Schoenert ] + * [f3f5455] lintian: remove icedove.menu file due CTTE#741573 + + -- Christoph Goehre Fri, 27 Nov 2015 12:54:27 -0500 + +icedove (38.3.0-2) unstable; urgency=medium + + * [c988747] Add unminified jquery and jquery-ui files with the exact + version as used by upstream thunderbird. + We don't want to use the minified versions mozilla ships and can't use + what is currently packaged in Jessie or Stretch since these are too + recent. + (Closes: #802281) + + -- Guido Günther Sun, 01 Nov 2015 18:06:33 +0100 + +icedove (38.3.0-1) unstable; urgency=medium + + [ Carsten Schoenert ] + * [0f8b6a4] Imported Upstream version 38.3.0 + * [566273a] debian/copyright: fixup's and update + + -- Christoph Goehre Sat, 10 Oct 2015 13:21:05 -0400 + +icedove (38.2.0-2) unstable; urgency=medium + + * [8bcb08b] relax optimize to -O1 on s390x (Closes: #797551) + * [6aa0915] debian/rules: Disable jit on mips (Closes: #797548) + + -- Christoph Goehre Thu, 24 Sep 2015 19:09:54 -0400 + +icedove (38.2.0-1) unstable; urgency=medium + + * [d46d5f6] rebuild patch queue from patch-queue branch + added patches: + - porting-mips/Fix-build-error-in-MIPS-SIMD-when-compiling-with-mfp.patch + + -- Christoph Goehre Mon, 21 Sep 2015 19:42:03 -0400 + +icedove (38.2.0-1~stretch) stretch; urgency=medium + + [ Carsten Schoenert ] + * [05b245f] Imported Upstream version 38.2.0 (Closes: #796323) + - MFSA 2015-59 aka CVE-2015-2724, CVE-2015-2725, CVE-2015-2726 + - MFSA 2015-63 aka CVE-2015-2731 + - MFSA 2015-66 aka CVE-2015-2734, CVE-2015-2735, CVE-2015-2736, + CVE-2015-2737, CVE-2015-2738, CVE-2015-2739, CVE-2015-2740 + - MFSA 2015-70 aka CVE-2015-4000 + - MFSA 2015-71 aka CVE-2015-2721 + - MFSA 2015-65 aka CVE-2015-2741 + - MFSA 2015-79 aka CVE-2015-4474 + * [43c8195] rebuild patch queue from patch-queue branch + * [c75bdad] debian/control: increase B-D on libnss3-dev + * [942bcbe] debian/iceowl-extension.lintian-overrides: remove file + * [7131e4d] debian/source.lintian-overrides: adding new entries + * [8882360] mozconfig.default: don't use icu from system + + -- Carsten Schoenert Fri, 21 Aug 2015 12:29:42 +0200 + +icedove (38.1.0-1) unstable; urgency=medium + + [ Carsten Schoenert ] + * [3d27760] Imported Upstream version 38.1.0 (Closes: #790651) + * [2cb6cd7] rebuild patch queue from patch-queue branch + added patches: + - fixes/Bug-1165654-Cleanup-how-libjpeg-turbo-assembly-build.patch + - reproducible/Generate-sorted-libical-header-list (Closes: #794456) + + -- Christoph Goehre Tue, 04 Aug 2015 20:20:53 -0400 + +icedove (38.0.1-1) unstable; urgency=medium + + [ Carsten Schoenert ] + * [5acef6a] debian/gbp.conf: adopt new upstream branch + * [6f88792] Imported Upstream version 38.0.1 (Closes: #358680, #472601, + #634316, #691176, #751786, #777908) + * [18bba9d] debian/gbp.conf: respect new git-buildpackage behaviour + * [26bbdac] rebuild patch queue from patch-queue branch + added patches: + - debian-hacks/changing-the-default-search-engine.patch (Closes: #780595) + - fixes/Bug-1168231-Fixup-to-keep-file-type.patch + - fixes/Bug-1168231-Normalize-file-mode-in-jars.patch + - reproducible/Bug-1166243-Remove-build-function-from-js-and-xpc-sh.patch + - reproducible/Bug-1168316-Remove-build-machine-name-from-about-bui.patc + deleted patches: + - debian-hacks/remove-timestamps-from-c_cpp-macros-for-reproducibil.patch + * [71938b9] debian/rules: setting MOZ_BUILD_DATE explicitly + * [e50d708] debian/copyright: more minor updates to the copyright file + * [b232895] debian/rules: adding switch for no icedove-dbg build + * [bcc15aa] debian/control: icedove is now recommending iceowl-extension + * [564a19e] adding release related information + * [2ec0053] debian/vendor.js: adjusting WhatNew link to more dedicated URL + + [ Christoph Goehre ] + * [a9c25b6] lintian: fix spelling error in debian/README.Debian + * [2cc2c07] debian/rules: fix icedove-dbg build switch + + -- Christoph Goehre Mon, 27 Jul 2015 17:46:40 -0400 + +icedove (38.0~b5-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [7e3cab4] Imported Upstream version 38.0~b5 + * [3edbafc] Revert "debian/control: remove build-dep on libnotify-dev" + * [5e69bab] debian/control: increase b-d versions + * [6e6ae36] rebuild patch queue from patch-queue branch + added patches: + - debian-hacks/remove-timestamps-from-c_cpp-macros-for-reproducibil.patch + obsolete patches (fixed in Debian): + - adopting-SQLITE3-version.patch + * [ac7b760] mozconfig.default: adding some explicit configure options + * [81fd6e6] complete rewrite of copyright information + * [327dd45] switching to libgstreamer1.0* + + [ Christoph Goehre ] + * [9877ea3] lintian: add override for libpng + + -- Christoph Goehre Fri, 22 May 2015 20:42:19 -0400 + +icedove (38.0~b2-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [b08d966] debian/source.filter: modifying file list to ignore + * [88fd018] Imported Upstream version 38.0~b2 + * [e9da8f8] icedove branding: adopt upstream changes + * [3610daa] debian/control: increase b-d versions + * [950fae7] rebuild patch queue from patch-queue branch + modified patches: + - system-libs/Allow-to-build-against-system-libffi.patch + - porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + obsolete patches (fixed upstream): + - porting/Reintroduce-pixman-code-path-removed-in-bug-1097776-.patch + * [1820d7c] debian/control: adding xul-ext-compactheader to Breaks field + + [ Dominik George ] + * [4181126] debian/control: Upgrade Breaks relation to enigmail + (Closes: #782686) + + -- Christoph Goehre Tue, 28 Apr 2015 18:19:00 -0400 + +icedove (36.0~b1-2) experimental; urgency=medium + + * [26c0027] rebuild patch queue from patch-queue branch + added patches: + - porting/Reintroduce-pixman-code-path-removed-in-bug-1097776-.patch + - porting/Remove-duplicate-SkDiscardableMemory_none.cpp-from-g.patch + - porting/ppc-fix-divide-page-size-in-jemalloc.patch (Closes: #780404) + + -- Christoph Goehre Sat, 28 Mar 2015 15:35:58 -0400 + +icedove (36.0~b1-1) experimental; urgency=medium + + [ Carsten Schoenert ] + * [68112a3] Imported Upstream version 36.0~b1 + * [3120361] rebuild patch queue from patch-queue branch + obsolete patches (fixed upstream): + - debian-hacks/fixing-various-FTBFS-due-different-datatype-char-beh.patch + - porting-arm/FTBFS-armhf-fixing-ARM-CPU-detection.patch + modified patches: + - debian-hacks/Strip-version-number.patch + - p-kfree-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + - p-kfree-hurd/correcting-file-inclusion-for-kfreebsd.patch + - p-kfree-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-Hurd.patch + * [ee185a2] d/icedove.install: mozilla-xremote-client was removed + * [64adc44] debian/source.filter: modifying file list to ignore + * [dbdd152] debian/control: increase package versions + * [fb3307c] lintian: adding one more source override + * [2a07495] lintian: adding new override for the icedove package + * [38c21ad] debian/README.Debian: adding note around HTTPS Everythere + (Closes: #774790) + + [ Christoph Goehre ] + * [3dce89c] debian/icedove.desktop: correct StartupWMClass to 'Icedove' + (Closes: #773876) + * [deb3f58] debian/icedove.desktop: add MimeType text/calendar + (Closes: #762190) + * [4dd96fe] rebuild patch queue from patch-queue branch + added patches: + - p-kfree-hurd/FTBFS-hurd-adding-the-HURD-platform-to-the-configure.patch + - p-powerpcspe/FTBFS-powerpcspe-disable-AltiVec-instructions.patch + (Closes: #772933) + modified patches: + - p-kfree-hurd/FTBFS-hurd-adding-GNU-Hurd-to-the-list-of-OS-systems.patch + - p-kfree-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + - p-kfree-hurd/LDAP-support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch + - p-kfree-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-Hurd.patch + * [373ed05] add missing epoch in libnss3-dev build depends + + -- Christoph Goehre Wed, 11 Mar 2015 19:19:28 -0400 + +icedove (34.0~b1-2) experimental; urgency=low + + [ Carsten Schoenert ] + * [7a4edc4] rebuild patch queue from patch-queue branch + added patches: + - debian-hacks/fixing-various-FTBFS-due-different-datatype-char-beh.patch + - porting-arm/FTBFS-armhf-fixing-ARM-CPU-detection.patch + + -- Christoph Goehre Mon, 24 Nov 2014 18:56:21 -0500 + +icedove (34.0~b1-1) experimental; urgency=low + + [ Carsten Schoenert ] + * [1be8ab1] debian/source.filter: more files to ignore + * [66e6488] debian/README.source: adjust description for beta versions + * [e63d375] Imported Upstream version 34.0~b1 (Closes: #770180) + * [1cb54d2] rebuild patch queue from patch-queue branch + obsolete patches (fixed upstream): + - porting-armel/disable-some-libopus-feature-for-ARCH-ARMv6.patch + * [ad29bb1] debian/rules: be more flexible on *.xpi files + * [b055e78] debian/NEWS: fixing default SSL/TLS behavior description + * [d64a847] debian/NEWS: adding notes around new security changes + + -- Christoph Goehre Wed, 19 Nov 2014 19:15:46 -0500 + +icedove (33.0~b1-1) experimental; urgency=low + + [ Carsten Schoenert ] + * [5029c8b] debian/source.filter: more files to ignore + * [d4b03d9] README.source: let's use xz while creating the orig.tar.xz + * [ebd442f] debian/gbp.conf: some instructions for git-dch + * [cc594ea] Imported Upstream version 33.0~b1 + * [23b57cf] rebuild patch queue from patch-queue branch + added patches: + - debian-hacks/fix-identification-of-ObjdirMismatchException.patch + - debian-hacks/pass-OS_LDFLAGS-to-all-ldap-libraries.patch + modified patches: + - debian-hacks/Strip-version-number.patch + - icedove/fix-branding-in-migration-wizard-and-the-addon-manag.patch + - porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + - obsolete patches (fixed upstream): + - fixes/Include-cstdlib-in-gfx-angle-src-compiler-Types.h-fo.patch + - porting-alpha/fix-FTBFS-on-alpha.patch + * [a5a2a1b] adding additional config options for hppa and ppc64 + Both platforms failing on running xpcshell. + + [ Christoph Goehre ] + * [5a0ba43] linitan: bump up standards version to 3.9.6 + * [aaca6a7] debian/NEWS: adding note around increased default TLS version 1.2 + (Closes: #761245) + + -- Christoph Goehre Sat, 25 Oct 2014 12:47:37 -0400 + +icedove (32.0~b1-1) experimental; urgency=low + + [ Christoph Goehre ] + * [65ad797] icedove.postinst: remove obsolete symlink handling + + [ Carsten Schoenert ] + * [baef95a] debian/gbp.conf: adopting experimental branch + * [8384eee] Imported Upstream version 32.0~b1 + * [75145f3] rebuild patch queue from patch-queue branch + modified patches: + - icedove/fix-branding-in-migration-wizard-and-the-addon-manag.patch + - debian-hacks/remove-non-free-W3C-icon-valid.png.patch + obsolete patches (fixed upstream): + - porting-armel/fix-skia-for-ARMv4.patch + + [ Christoph Goehre ] + * [51c3cee] cleanup branding patch + + -- Christoph Goehre Thu, 28 Aug 2014 15:52:51 -0700 + +icedove (31.0-2) unstable; urgency=low + + [ Carsten Schoenert ] + * [d2bc0ef] armel: correcting #if statement for skia fix + * [959b801] adding GNU/Hurd to gyp.mozbuild + * [215bc7d] kfreebsd*: adding CrossProcessMutex_posix.cpp to list + * [892c39c] d/icedove.links: remove unneeded link to /u/s/i/e + (Closes: #638489) + * [928158c] debian/source.filter: more files to ignore + * [b81c238] fixing lintian warning 'unused-override' + * [7bc2568] fixing lintian warning 'jar-not-in-usr-share' + * [cd0d289] fixing lintian warning 'image-file-in-usr-lib' + * [045a960] fixing lintian error 'source-is-missing' + * [1fe016a] correcting FTBFS patch for alpha + + [ Christoph Goehre ] + * [c827d81] iceowl-extension: replace skin and icon dir with symlink + + -- Christoph Goehre Sat, 23 Aug 2014 18:42:23 -0700 + +icedove (31.0-1) unstable; urgency=low + + [ Carsten Schoenert ] + * [b7cdeb4] Imported Upstream version 31.0 (Closes: #756769) + * [1f2ff0b] debian/rules: fixing file permissions in iceowl-extension + * [c8d2036] adding fix for skia on armel + * [77093e2] fixing FTBFS on armel (Closes: #754633) + * [a458959] debian/control: increase b-d on libsqlite-dev + * [a98ebca] fix runtime error on alpha while jemalloc run + * [6f6b576] disable optimization on alpha while linking + + -- Christoph Goehre Mon, 04 Aug 2014 10:23:09 -0400 + +icedove (31.0~b2-1) unstable; urgency=low + + [ Carsten Schoenert ] + * [76059a9] debian/source.filter: more files to ignore + * [5067b0e] Imported Upstream version 31.0~b2 (Closes: #754464) + * [e31ac79] debian/control: remove build-dep on libnotify-dev + * [35324a5] debian/control: increase build-depends on libnss3-dev to 3.16.2~ + + -- Christoph Goehre Fri, 18 Jul 2014 21:47:06 +0200 + +icedove (31.0~b1-2) unstable; urgency=low + + * [7ba4d01] lintian: add override for embedded srtp library + + -- Christoph Goehre Sun, 22 Jun 2014 18:18:04 -0400 + +icedove (31.0~b1-1) unstable; urgency=low + + * [02dc94c] remove example file, which cause git-archive to change the + source tree + * [ba233b1] Imported Upstream version 31.0~b1 + * [4c2380f] rebuild patch queue from patch-queue branch + modified patches: + - porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + - porting-kfreebsd-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-.patch + obsolete patches (fixed upstream): + - fixes/unbreak-with-system-pixman-in-mailnews.patch + - porting-hppa/FTBFS-hppa-correcting-code-inside-JS_STACK_GROWTH_DI.patch + + -- Christoph Goehre Sun, 22 Jun 2014 11:50:07 -0400 + +icedove (30.0~b1-1) unstable; urgency=low + + [ Carsten Schoenert ] + * [b3eadf1] debian/source.filter: more files to ignore + * [fb71012] debian/control: bumping build-depends for debhelper + * [dc4ad0c] debian/control: add libpulse-dev build dependency + * [b8d3ee7] debian/control: bumping some version of build dependencies + * [3443df9] debian/icedove-dev.install: adopt upstream changes + * [d0f9d0e] icedove.lintian-overrides: adding libtheora + * [982c8a6] debian/rules: adding removing for temporary files + + [ Christoph Goehre ] + * [f6292d5] Imported Upstream version 30.0~b1 (Closes: #743421) + * [dacd658] rebuild patch queue from patch-queue branch + modified patches: + - porting-hppa/FTBFS-hppa-correcting-code-inside-JS_STACK_GROWTH_DI.patch + - porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-hurd.patch + - porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-kfreebsd.patch + - porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + - porting-kfreebsd-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-.patch + - prefs/Set-javascript.options.showInConsole.patch + - debian-hacks/Icedove-branding.patch + - fixes/unbreak-with-system-pixman-in-mailnews.patch + obsolete patches (fixed upstream): + - debian-hacks/Do-build-time-detection-of-2-bytes-wchar_t-and-char1.patch + - debian-hacks/Fix-build-failure-for-header.py-and-typelib.py.patch + - fixes/Make-system-cairo-work-again.patch + - porting-powerpcspe/FTBFS-Altivec-is-not-available-on-powerpcspe.patch + * [df93d26] branding: add jar.mn to moz.build + * [648853d] only copy debian/mozconfig.default into mozilla subdir + * [4f9dc9e] MOZ_OBJDIR need a absolute path, $(pwd) didn't work + * [33794c3] icedove.pc: remove non-existent library mozjs (Closes: #748746) + * [dcbce5c] iceowl-extension: use breaks instead of conflicts against + calendar-timezones (Closes: #747532) + * [545415a] add breaks to enigmail (<< 2:1.6-4~deb7u1) which won't work with + us (Closes: #747546) + + -- Christoph Goehre Fri, 30 May 2014 12:11:53 -0400 + +icedove (24.5.0-2) unstable; urgency=low + + * [e4a43ed] debian/rules: remove duplicate LDFLAGS += -Wl,--stats + * [f9dba4b] debian/rules: export all compiler flags into build environment + * [8dc0712] debian/rules: run autoconf for all configue files + * [95d4b48] debian/rules: export MOZCONFIG onces + * [577bd03] debian/rules: update config.sub and config.guess before autoconf + run + * [7f958c7] parse DEB_BUILD_OPTIONS for how many parallel buildjobs to start + (Closes: #746984) + * [0f8b062] debian/rules: export MOZILLA_OFFICIAL + * [1c3d277] run configure with --build and --host + * [f190e19] don't build a shared js library (Closes: #724688, #729073, + #745593) + + -- Christoph Goehre Thu, 08 May 2014 20:07:06 -0400 + +icedove (24.5.0-1) unstable; urgency=low + + [ Carsten Schoenert ] + * [7c13dbf] calender-timezones: remove no longer needed helper files + * [2d4328c] debian/control: sort various fields alphabetically + * [436c212] debian/control: remove build-depens on cdbs + * [dae8b3e] icedove branding: adopt current Makefile.in style to upstream + * [045be10] debian/rules: switch to debhelper + * [b852c8c] debian/mozconfig*: adding mozconfig files + * [7bac68c] debian/icedove.configopts: Remove no longer needed file + * [6c597b9] Switch the old thunderbird*.in files to icedove.* + * [9781e61] debian/icedove.links: adding /u/b/i link + * [f325194] debian/icedove.dirs: add helper file for needed directories + * [fe0376a] debian/icedove.install: sort entrys alphabetical + * [0111ccc] debian/icedove.js: fix small typo and reformat + * [a7e5b05] debian/rules: add override for dh_fixperms + * [8e44df2] debian/rules: add override for dh_install + * [24fa03a] debian/rules: add override for dh_shlibdeps + * [2f22ed0] debian/rules: add override for dh_strip + * [259a6f4] debian/control: remove ${shlibs:Depends} from c-g-p depends + * [cdc9272] debian/rules: add additional LDFLAGS + * [9d620d5] debian/rules: correct Icedove version inside icedove.pc during + install + + [ Christoph Goehre ] + * [460818b] Imported Upstream version 24.5.0 + * [4c65ecc] rebuild patch queue from patch-queue branch + added patches: + - porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch + obsolete patches: + - porting-kfreebsd-hurd/Another-fix-to-build-ipc-code-on-GNU-hurd-an.patch + + -- Christoph Goehre Tue, 29 Apr 2014 17:56:40 -0400 + +icedove (24.4.0-1) unstable; urgency=low + + * [a2b13c0] Imported Upstream version 24.4.0 + * [fd90463] rebuild patch queue from patch-queue branch + added patches: + - porting-hppa/FTBFS-hppa-correcting-code-inside-JS_STACK_GROWTH_DI.patch + (Closes: #741245) + + -- Christoph Goehre Sat, 22 Mar 2014 11:10:18 -0400 + +icedove (24.3.0-2) unstable; urgency=low + + [ Christoph Goehre ] + * [122ffe9] remove ldif60 from pkgconfig file (Closes: #732652) + * [b64ccac] rebuild patch queue from patch-queue branch + added patches: + - porting-powerpcspe/FTBFS-Altivec-is-not-available-on-powerpcspe.patch + (Closes: #734859) + + [ Carsten Schoenert ] + * [aa4f5b1] thunderbird.install.in: shipping all files in /u/l/i/components + (Closes: #737811) + * [3bf4738] debian/rules: fix *.js file-permissions for iceowl-extension + * [50ab7a5] debian/rules: remove -Wl,--as-needed linker option + (Closes: #732652, #730450, #724688) + + -- Christoph Goehre Sun, 09 Mar 2014 15:33:05 -0400 + +icedove (24.3.0-1) unstable; urgency=low + + * [a656560] lintian: remove non-free w3c valid.png icon (Closes: #735119) + * [f4e6c08] lintian: remove prebuild javascript objects from upstream + tarball (Closes: #735234) + * [adf9c96] Imported Upstream version 24.3.0 + * [8419e65] rebuild patch queue from patch-queue branch + added patches: + - debian-hacks/remove-non-free-W3C-icon-valid.png.patch + - debian-hacks/use-system-jquery-jquery-ui.patch + * [948af3e] a newer icedove will break iceowl-extension (Closes: #732742) + + -- Christoph Goehre Mon, 10 Feb 2014 19:44:36 -0500 + +icedove (24.2.0-1) unstable; urgency=low + + [ Christoph Goehre ] + * [963a61e] Imported Upstream version 24.2.0 + * [852abe3] rebuild patch queue from patch-queue branch + obsolete patches (fixed upstream): + - fixes/Wrap-non-prefixed-freetype-headers-from-newer-freety.patch + - porting/Don-t-hardcode-page-size-on-ia64-sparc-or-mipsel.patch + (Closes: #734074) + * [a9d6680] lintian: remove prebuild-binaries from upstream tarball + * [fc25943] linitan: remove prebuilt-windows-binary from upstream tarball + * [faa24eb] lintian: fix comma separated files copyright + * [835790d] lintian: declare public-domain license at the beginning + + [ Carsten Schoenert ] + * [c583a2f] debian/copyright: fix indentation for 'public domain' license + * [78ddee2] linitan: bump up standards version to 3.9.5 + + -- Christoph Goehre Sat, 11 Jan 2014 20:17:24 -0500 + +icedove (24.1.1-1) experimental; urgency=low + + [ Carsten Schoenert ] + * [e8cbac4] debian/copyright: correcting wrong comma usage. + * [d24a6be] debian/copyright: adjusting copyright infos + * [51a32a1] debian/copyright: correcting various lintian warning. + * [50874e0] debian/control: expanding icedove-dev dependency on python + * [2996a33] debian/control: adding a more specific description for + iceowl-extension and google-cal-prov. + * [85b4400] debian/control: adjust proper version dependencies. + (Closes: #729712) + * [4d6b204] debian/control: adding metadata for mozilla-devscripts. + (Closes: #562984) + + [ Christoph Goehre ] + * [aa7782b] Imported Upstream version 24.1.1 (Closes: #720931, #723630) + * [e4ca9cd] rebuild patch queue from patch-queue branch + added patches: + - fixes/Wrap-non-prefixed-freetype-headers-from-newer-freety.patch + - porting-kfreebsd-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and.patch + * [849988b] make python scripts in /usr/lib/icedove-devel/sdk/bin executable + * [9890b1c] ship python config scripts to make building of extensions easier + (Closes: #729431) + * [8b08106] remove libxpcom.so from pkgconfig file (Closes: #729168) + * [4759bde] add libldif60 to pkgconfig file + * [db575b4] lintian: remove unsafe symlink from upstream tarball + + -- Christoph Goehre Sun, 08 Dec 2013 10:08:19 -0500 + +icedove (24.0-1) experimental; urgency=low + + [ Guido Günther ] + * [6f9d98e] New upstream version 24.0 + * [ef58a98] Refresh patches + * [435516d] Switch to xz compressed upstream tarball + * [f529a99] repack.py: port to python3 + * [50423d9] repack.py: allow to specify compression + + [ Christoph Goehre ] + * [b45b2b9] remove superfluous gstreamer build depends + * [96ac1d0] Reduce memory usage of the linker. Thanks to Mike Hommey + * [af55374] ia64 don't like LDFLAG --no-keep-memory + * [c3cb093] remove export-subst in mozilla/addon-sdk/source/.gitattributes. + + [ Carsten Schoenert ] + * [ac4caea] debian/copyright: correcting out-of-date-copyright-format-uri. + * [585bf84] debian/copyright: remove obsolete field 'Name:' + + -- Christoph Goehre Tue, 15 Oct 2013 18:51:16 -0400 + +icedove (24.0~b3-2) experimental; urgency=low + + * [47fe004] Add lintian override for our use of the embedded libjpeg + * [3c103e6] Make sure xpcshell is executable so dh_shlibdeps picks it up to + calculate lib dependencies + + -- Guido Günther Tue, 24 Sep 2013 20:03:33 +0200 + +icedove (24.0~b3-1) experimental; urgency=low + + [ Guido Günther ] + * Upload to experimental + * [eae533c] Adjust watch file once again + * [5280050] Invoke repack.py directly + * [0f4e8de] New upstream version 24.0~b3 + (Closes: #706859, #720931, #723630) + * [3b6374b] Don't use system jpeg + since it doesn't have the needed features + * [f6aeba2] Don't try to remove nonexistent libxpcom.so + + [ Carsten Schoenert ] + * [04844ae] icedove-branding: adopt new build schema to Debian branding + by using moz.build. + * [11c4677] icedove-branding: change the target directory for preview.png. + * [55f6762] debian/control: remove package calendar-timezones. + The calendar-timezones related files are now inside the lightning + package. + * [6f4948d] debian/rules: catch any gdata-provider*.xpi file. + The gdata-provider XPI file now has a version appended. + * [d5a63c9] debian/rules: catch any lightning*.xpi file. + The lightning XPI file now has a version appended. + * [e77e911] debian/thunderbird.install.in: + remove mozilla/components/binary.manifest since it no longer exists. + * [ef3f3b1] debian/control: Build-Depend on gstreamer an yasm now used by + icedove. + * [9f5fe3e] Drop patches fixed upstream. + Bug-720682-Don-t-crash-an-app-using-libxul-because-o.patch + Bug-723497-Saving-message-to-disk-fails-silently-fai.patch + Bug-746112-Don-t-decommit-if-page-size-is-too-large.patch + Bug-814693-Allow-webrtc-to-build-on-more-architectur.patch + Bug-840242-Use-the-runtime-page-size-to-control-aren.patch + virtualenv-changing-the-path-to-virtualenv.py.patch + * [4503610] Adjust to build system changes: + debian-hacks/Don-t-build-example-component.patch + * [290f1e0] Partially applied upstream: + Support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch + * [2eaf6ae] Rediff remaining patches + * [4217c0e] Create missing .deps dir. + Workaround to make build complete + * [f95db9c] Drop autoconf.mk mangling since it confuses the build system + + -- Guido Günther Thu, 19 Sep 2013 20:10:24 +0200 + +icedove (17.0.8-1) unstable; urgency=low + + [ Carsten Schoenert ] + * [af98dad] The vendorShortName is of course "Mozilla" and not "Icedove" The + packages in icedove-l10n already use the correct substition. + (Closes: #707207, #715326) + * [8ceae38] Sawfish: fix wrong size of resized window. + Backported from the TB20 release. + https://bugzilla.mozilla.org/show_bug.cgi?id=813997 (Closes: #715464) + * [b69cb68] Fix error while saving a message to disk or network. + If the user tries to save a message to disk or network share without + enough user rights to write the message Icedove fails silently. This + backport from TB 21 fixes this. + * [fd8f588] Desktop file: shorten the icon name to 'Icedove' (Closes: #507962) + * [24b1b45] fix JS compiler segfault errors for various platforms + (Closes: #708331) + + [ Christoph Goehre ] + * [01f6b7a] add README.Debian to describe upstream status of Thunderbird + (Closes: #710888) + * [7fa36d6] rebuild patch queue from patch-queue branch added patches: + - porting/Fix-ipc-chromium-on-kFreeBSD-and-Hurd.patch + + [ Guido Günther ] + * [455bfe7] New upstream version 17.0.8 + + -- Guido Günther Tue, 20 Aug 2013 16:12:17 +0200 + +icedove (17.0.7-1) unstable; urgency=low + + * [b8fd345] Imported Upstream version 17.0.7 + * [3133999] rebuild patch queue from patch-queue branch + modified patches: + - porting/Don-t-hardcode-page-size-on-ia64-sparc-or-mipsel.patch + * [3332f92] lintian: change url to version control system + * [534e2d1] linitan: bump up standards version to 3.9.4 + * [2b511d2] lintian: remove obsolete thunderbird dependency in + iceowl-extension + * [2081e7e] lintian: add Keywords to icedove desktop file + * [7f8333c] lintian: mask minus signs in manpage with a backslash + + -- Christoph Goehre Sun, 30 Jun 2013 18:46:16 -0400 + +icedove (17.0.5-2) unstable; urgency=low + + [ Guido Günther ] + * [4c7a88a] Install calendar-google-provider to /u/s/xul-ext + (Closes: #638480) + * [4c97096] Move calendar-timezones to /u/s/xul-ext (Closes: #638481) + * [e9d0085] Move arch indep parts to common-install-indep + + [ Carsten Schoenert ] + * [40d68d5] Fix build error on IA64 and Sparc + * [59939c3] manpage: add example section and convert to UTF-8 + * [10647cf] fixing build failure depended on python-2.7 changes + + [ Christoph Goehre ] + * [0a7bb8b] create links for extension in + /usr/share/mozilla/extensions/APPID + * [5047e6b] remove + icedove/save-a-copy-of-a-attached-file-when-sending-from-OOo.patch + (Closes: #695323) + + -- Christoph Goehre Sat, 18 May 2013 17:53:21 -0400 + +icedove (17.0.5-1) experimental; urgency=low + + [ Guido Günther ] + * [894ea6d] Include all needed libs to link against icedove's libxpcom + (Closes: #477747) + + [ Carsten Schoenert ] + * [6e00625] Point "Help->What's new" to the Debian Wiki (Closes: #570577) + + [ Christoph Goehre ] + * [4766bc9] replace icon in searchplugin (bing, twitter) with download url + * [e3dc726] Imported Upstream version 17.0.5 + + -- Christoph Goehre Sat, 13 Apr 2013 12:19:06 -0400 + +icedove (17.0.4-1) experimental; urgency=low + + [ Guido Günther ] + * [9ed54cb] Add Homepage + * [bd41337] Add X-Debian-Homepage + + [ Carsten Schoenert ] + * [1fba87f] New patch + fix-function-nsMsgComposeAndSend-to-to-respect-Replo.patch fix function + nsMsgComposeAndSend to respect ReploToSend + Thanks to Emilio Pozuelo Monfort for the patch (Closes: #565903) + + [ Christoph Goehre ] + * [7a1071b] update debug section in icedove manpage (Closes: #698163) + * [017f5b5] Imported Upstream version 17.0.4 (Closes: #702927) + * [7c35529] compress debian packages with xz + + -- Christoph Goehre Wed, 13 Mar 2013 19:00:07 -0400 + +icedove (17.0.2-1) experimental; urgency=low + + * [8911b88] Finally set Christoph as Maintainer. + Thanks for your work Alexander. + * [d456018] parallel build: Use number or available cores by default + * [daeee47] Don't refer to paths containing thunderbird (Closes: #486617) + * [52a202a] New upstream version 17.0.2 + * [fa07537] Allow webrtc to build on more architectures. + Thanks to Mike Hommey and Christoph Göhre + + -- Guido Günther Fri, 11 Jan 2013 17:37:46 +0100 + +icedove (17.0.2-1~1) experimental; urgency=low + + * [8911b88] Finally set Christoph as Maintainer. Thanks for your work + Alexander. + * [d456018] parallel build: Use number or available cores by default + * [daeee47] Don't refer to paths containing thunderbird (Closes: #486617) + * [52a202a] New upstream version 17.0.2 + * [fa07537] Allow webrtc to build on more architectures. + Thanks to Mike Hommey and Christoph Göhre + + -- Guido Günther Fri, 11 Jan 2013 17:35:22 +0100 + +icedove (17.0-1) experimental; urgency=low + + [ Christoph Goehre ] + * [0b8ac79] replace transitional depens ttf-lyx with fonts-lyx + (Closes: #676505) + * [4473d67] fix typo in calendar-google-provider description + * [b3a57c0] rebuild patch queue from patch-queue branch + added patches: + porting/Another-fix-to-build-ipc-code-on-GNU-hurd-and-kfreeb.patch + + [ Jens Reyer ] + * [c0e30b6] clarify the relation between iceowl, lightning and sunbird + (Closes: #686206) + + [ Guido Günther ] + * [394b6a1] New upstream version 17.0 + * [a17c23f] Update patches. + The thunderbird-3-profile.patch got split into three since it + addresses different issues: + * Strip-version-number.patch + * Icedove-branding.patch + * Move-profile.patch + * [01eef04] Don't overwrite DEB_BUILD_OPTIONS + and drop dependency on essential package + + [ Ritesh Raj Sarraf ] + * [1ab9095] Add parallel build support + + -- Guido Günther Sat, 24 Nov 2012 19:26:19 +0100 + +icedove (16.0.2-1) experimental; urgency=low + + [ Christoph Goehre ] + * [e94445f] cleanup source.filer file + * [33b9f4c] Imported Upstream version 12.0.1 + + [ Guido Günther ] + * [88a39e3] watch: only look for two digit versions since 3.1.20 lacks the + source/ dir + * [eb4f5c3] New upstream version 14.0 + * [b451442] Update patches for 14.0 + obsolete patches: + Avoid-libxpcom-being-excluded-from-linked-libraries-.patch + Bug-515232-Try-getting-general.useragent.locale-as-a.patch + Bug-696636-Block-OpenGL-1-drivers-explicitly-to-stee.patch + Bug-710972-Define-G_VARIANT_TYPE_STRING_ARRAY-when-b.patch + Bug-722127-Bump-required-libvpx-version-to-1.0.0.-r-.patch + Bug-728136-Port-bug-528687-to-comm-central.patch + Bug-728229-Allow-to-build-with-system-python-ply-lib.patch + Bug-729817-Allow-the-Nouveau-driver-with-Mesa-8.0.1-.patch + Bug-729817-Block-the-Nouveau-3D-driver-as-it-s-insta.patch + Bug-734335-Only-build-SPS-on-supported-platforms.patch + Revert-investigation-patch-for-bug-621446.patch + Bug-698923-Don-t-require-16-bytes-alignment-for-VMFr.patch + Bug-711353-Add-support-for-GNU-kFreeBSD-and-GNU-Hurd.patch + modified patches: + Add-another-preferences-directory-for-applications-p.patch + Do-build-time-detection-of-2-bytes-wchar_t-and-char1.patch + Don-t-build-example-component.patch + Don-t-error-out-when-run-time-libsqlite-is-older-tha.patch + Don-t-register-plugins-if-the-MOZILLA_DISABLE_PLUGIN.patch + Gross-workaround-to-avoid-installing-test-idl-and-in.patch + Ignore-system-libjpeg-libpng-and-zlib-version-checki.patch + stop-configure-if-with-system-bz2-was-passed-but-no-.patch + Allow-.js-preference-files-to-set-locked-prefs-with-.patch + Bug-691898-Use-YARR-interpreter-instead-of-PCRE-on-p.patch + Bug-720682-Don-t-crash-an-app-using-libxul-because-o.patch + Include-cstdlib-in-gfx-angle-src-compiler-Types.h-fo.patch + Link-libldap-against-libpthread.patch + Load-dependent-libraries-with-their-real-path-to-avo.patch + Properly-launch-applications-set-in-HOME-.mailcap.patch + Remove-the-js-shell-from-the-build-directory-during-.patch + fix-branding-in-migration-wizard-and-the-addon-manag.patch + fix-installdir.patch + save-a-copy-of-a-attached-file-when-sending-from-OOo.patch + thunderbird-3-profile.patch + Change-extension-s-name-to-Iceowl.patch + Add-xptcall-support-for-SH4-processors.patch + Allow-ipc-code-to-build-on-GNU-hurd.patch + Allow-ipc-code-to-build-on-GNU-kfreebsd.patch + Bug-703833-Avoid-invalid-conversion-from-const-size_.patch + Disable-optimization-on-alpha-for-the-url-classifier.patch + Fix-GNU-non-Linux-failure-to-build-because-of-ipc-ch.patch + Support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch + Don-t-auto-disable-extensions-in-system-directories.patch + Set-javascript.options.showInConsole.patch + Allow-to-build-against-system-libffi.patch + * [907be61] Make sure we only match the generated files. Patch taken from + iceowl 1.5 package + * [772b9a0] Make system cairo work again. Patch taken from iceweasel. + * [0b6a8b3] Update + Add-another-preferences-directory-for-applications-p.patch to new method + name. + * [3395f21] Don't use APP_UA_NAME in application.ini since the replacement + fails and isn't needed. + * [6dea9fb] New upstream version 16.0.1 + * [664153d] Add README.source describing howto import new upstream versions + * [a653bd0] Adjust to upstream changes: + * stop-configure-if-with-system-bz2-was-passed-but-no-.patch + * [f088193] Add a proper patch header + * to Fix-build-failure-for-header.py-and-typelib.py.patch + so we don't lose the patch description. + * [268cca5] New upstream version 16.0.2 + * [a453a92] Rediff patches - no content changes + * [263bbeb] BUILD_OFFICIAL is now MOZILLA_OFFICIAL + * [a798e6b] Install dependentlibs.list to fix dlopen() of XPCOM + + [ Ritesh Raj Sarraf ] + * [f871ba9] Refresh patches. + Droped patches: + * fixes/Remove-the-js-shell-from-the-build-directory-during-.patch + * porting/Bug-703833-Avoid-invalid-conversion-from-const-size_.patch + * fixes/Bug-691898-Use-YARR-interpreter-instead-of-PCRE-on-p.patch + * debian-hacks/Make-sure-we-only-match-the-generated-files.patch + * [9b02e4c] Refreshed patches for TB16 + * [dc83dd7] Fix build failure for header.py and typelib.py. + Earlier builds were passing the --cachedir option + Sometime during TB15, Mozilla changed that to variables. + This change was not passing the --cachedir option, hence the build + failure. This patch just hacks the build by passing the cachedir option + manually + + -- Guido Günther Tue, 30 Oct 2012 22:05:49 +0100 + +icedove (11.0-1) experimental; urgency=low + + * [ffb767a] Imported Upstream version 11.0 (Closes: #663897) + * [2b75f48] relax optimize to -O1 on sparc to fix FTBFS + * [fa9a610] update build dependencies (Thanks to Mike) (Closes: #666722) + * [5b552f2] rebuild patch queue from patch-queue branch + added patches: + - fixes/Bug-710972-Define-G_VARIANT_TYPE_STRING_ARRAY-when-b.patch + - fixes/Bug-734335-Only-build-SPS-on-supported-platforms.patch + - fixes/Revert-investigation-patch-for-bug-621446.patch + modified patches: + - fixes/Bug-691898-Use-YARR-interpreter-instead-of-PCRE-on-p.patch + - icedove/fix-branding-in-migration-wizard-and-the-addon-manag.patch + - icedove/save-a-copy-of-a-attached-file-when-sending-from-OOo.patch + obsolete patches (fixed upstream): + - debian-hacks/Fix-tracejit-to-build-against-nanojit-headers-in-dis.patch + - debian-hacks/Install-missing-nanojit-and-.tbl-headers-from-js-src.patch + - fixes/Bug-710268-Sign-NSS-libraries-only-when-they-exist-r.patch + - fixes/Fixup-bz-730195-for-Linux-ARM-use-_URC_FOREIGN_EXCEP.patch + - fixes/mozilla-config.h-was-renamed-js-confdefs.h-in-js-src.patch + - fixes/Remove-generated-files-from-js-src-during-make-distc.patch + - porting/Bug-703531-Fix-ARMAssembler-getOp2RegScale-on-ARMv5.patch + - porting/Bug-703534-Fix-build-failure-on-platforms-without-YA.patch + - porting/Bug-703842-Avoid-R_SPARC_WDISP22-relocation-in-Tramp.patch + + -- Christoph Goehre Wed, 18 Apr 2012 18:36:31 +0200 + +icedove (10.0.3-2) unstable; urgency=low + + [ Christoph Goehre ] + * [1223204] bump up standards version to 3.9.3 + + [ Guido Günther ] + * [7d7b5f5] Don't put symlinks into iceowl/extensions + + [ Christoph Goehre ] + * [94c07e5] update copyright file + * [88098a8] GNOME 3 integration: Use GIO instead of deprecated GnomeVFS. + Thanks to Michael Biebl (Closes: #658688) + * [9543fd1] add build depends python + * [ec62dcb] build a debug package, if DEB_BUILD_OPTIONS contains 'debug' + + -- Christoph Goehre Tue, 27 Mar 2012 18:21:52 +0200 + +icedove (10.0.3-1) unstable; urgency=low + + [ Christoph Goehre ] + * [ee4b49c] adjust source.filter list + * [b5f3064] New Upstream version 10.0.3 (Closes: #661115, #663897) + * [fd35da8] build against system python-ply + * [4964bb2] build against system libreadline + * [5412685] rebuild patch queue from patch-queue branch + added patches: + - debian-hacks/Don-t-build-example-component.patch + - fixes/Bug-515232-Try-getting-general.useragent.locale-as-a.patch + - fixes/Bug-628252-os2.cc-fails-to-compile-against-GCC-4.6-m.patch + - fixes/Bug-691898-Use-YARR-interpreter-instead-of-PCRE-on-p.patch + - fixes/Bug-696636-Block-OpenGL-1-drivers-explicitly-to-stee.patch + - fixes/Bug-710268-Sign-NSS-libraries-only-when-they-exist-r.patch + - fixes/Bug-720682-Don-t-crash-an-app-using-libxul-because-o.patch + - fixes/Bug-722127-Bump-required-libvpx-version-to-1.0.0.-r-.patch + - fixes/Bug-728136-Port-bug-528687-to-comm-central.patch + - fixes/Bug-728229-Allow-to-build-with-system-python-ply-lib.patch + - fixes/Bug-729817-Allow-the-Nouveau-driver-with-Mesa-8.0.1-.patch + - fixes/Bug-729817-Block-the-Nouveau-3D-driver-as-it-s-insta.patch + - fixes/Fixup-bz-730195-for-Linux-ARM-use-_URC_FOREIGN_EXCEP.patch + - fixes/Include-cstdlib-in-gfx-angle-src-compiler-Types.h-fo.patch + - fixes/Link-libldap-against-libpthread.patch + - fixes/Load-dependent-libraries-with-their-real-path-to-avo.patch + - porting/Bug-703534-Fix-build-failure-on-platforms-without-YA.patch + - prefs/Don-t-auto-disable-extensions-in-system-directories.patch + (Closes: #648712) + modified patches: + - debian-hacks/Install-missing-nanojit-and-.tbl-headers-from-js-src.patch + - fixes/Allow-.js-preference-files-to-set-locked-prefs-with-.patch + - fixes/Properly-launch-applications-set-in-HOME-.mailcap.patch + - icedove/fix-branding-in-migration-wizard-and-the-addon-manag.patch + - porting/Allow-ipc-code-to-build-on-GNU-hurd.patch + - porting/Bug-703833-Avoid-invalid-conversion-from-const-size_.patch + - prefs/Set-javascript.options.showInConsole.patch + obsolete patches (fixed upstream): + - debian-hacks/get-ride-of-default-debian-hardering-options.patch + - iceowl/Install-calendar-timezones-mode-0644-not-0755.patch + - porting/Add-mips-hppa-ia64-s390-and-sparc-defines-in-ipc-chr.patch + - porting/Bug-680917-Use-a-pool-size-of-16kB-on-ia64-for-bump-.patch + - porting/Bug-694533-LDRH-STRH-LDRSB-STRSB-are-supported-on-AR.patch + - porting/Bug-696393-Reimplement-NS_InvokeByIndex-in-C-on-S390.patch + - porting/Revert-bz-164580.patch + + [ Michael Biebl ] + * [c0a3ee2] Install chrome.manifest file to ensure the various components + (like GNOME support module) are correctly loaded. (Closes: #658479) + + [ Christoph Goehre ] + * [02687fc] adjust install/link files for new upstream + * [b551d6a] omni.jar was renamed to omni.ja + + -- Christoph Goehre Sat, 24 Mar 2012 23:10:47 +0100 + +icedove (9.0.1-1) experimental; urgency=low + + * [e2002b8] New Upstream version 9.0.1 (Closes: #653266, #653556) + * [9c14e8b] replace dfsg cleanup script with Mike's repack.py + * [2a34bd8] rebuild patch queue from patch-queue branch + added patches: + - porting/Bug-698923-Don-t-require-16-bytes-alignment-for-VMFr.patch + - porting/Bug-703531-Fix-ARMAssembler-getOp2RegScale-on-ARMv5.patch + - porting/Bug-703833-Avoid-invalid-conversion-from-const-size_.patch + - porting/Bug-703842-Avoid-R_SPARC_WDISP22-relocation-in-Tramp.patch + - porting/Bug-711353-Add-support-for-GNU-kFreeBSD-and-GNU-Hurd.patch + - porting/Fix-GNU-non-Linux-failure-to-build-because-of-ipc-ch.patch + * [03ed85d] remove Build-Depends python-ply, it's shipped and searched in + mozilla/other-licenses + + -- Christoph Goehre Tue, 24 Jan 2012 19:13:30 +0100 + +icedove (8.0-2) unstable; urgency=low + + * Upload to unstable + * [b02c21d] fix crash in xpcshell on sparc linux + + -- Christoph Goehre Wed, 04 Jan 2012 18:09:14 +0100 + +icedove (8.0-1) experimental; urgency=low + + [ Guido Günther ] + * [17a7a80] Add x-scheme-handler/mailto to. Thanks to Michael Biebl for the + patch (Closes: #645556) + + [ Christoph Goehre ] + * [4066038] New Upstream version 8.0 + * [aa9105e] update autoconfig for e-mail accounts from riseup.net + (Closes: #648907) + * [decc1ac] fix wrong description text in iceowl-extension (Closes: #649073) + * [c97dda6] rebuild patch queue from patch-queue branch + added patches: + - debian-hacks/Statically-link-jemalloc-to-all-programs.patch + - fixes/Bug-670719-Only-add-DENABLE_JIT-1-to-CXXFLAGS-if-any.patch + - fixes/Bug-680642-Don-t-enable-YARR-JIT-on-MIPS-as-the-impl.patch + - porting/Bug-589735-Allocate-memory-with-an-address-with-high.patch + - porting/Bug-589735-Allow-static-JS-strings-to-be-turned-off-.patch + - porting/Bug-680917-Use-a-pool-size-of-16kB-on-ia64-for-bump-.patch + - porting/Bug-694533-LDRH-STRH-LDRSB-STRSB-are-supported-on-AR.patch + - porting/Bug-696393-Reimplement-NS_InvokeByIndex-in-C-on-S390.patch + - porting/Revert-bz-164580.patch + + -- Christoph Goehre Sun, 20 Nov 2011 19:58:37 +0100 + +icedove (8.0~b4-2) experimental; urgency=low + + [ Guido Günther ] + * [5d043ec] Install calendar extension + * [07feb49] Change extension's name to Iceowl + * [c597212] iceowl-extension: don't ignore errors in postinst + * [30ec51d] Disable patch numbers + * [73f80ed] Don't install timezones file mode 0755 + + [ Christoph Goehre ] + * [0fa13be] remove duplicate build depends unzip + + -- Christoph Goehre Tue, 08 Nov 2011 22:29:19 +0100 + +icedove (8.0~b4-1) experimental; urgency=low + + * [4e90977] New Upstream Version 8.0b4 (Closes: #591771, #638161) + * [955423a] replace duplicate .so files in icedove and icedove-dev with + symlinks + * [6ffb325] remove obsolete cdbs rule to extract tarball + * [f98837b] build against libnotify4 (libnotify-dev >= 0.7)(Closes: #637194) + * [66f72bc] Build-depend on libjpeg-dev instead of libjpeg62-dev + * [8af21a2] rebuild patch queue from patch-queue branch + added patches: + - debian-hacks/get-ride-of-default-debian-hardering-options.patch + - fixes/packager-fails-when-MOZILLA_DIR-is-a-relative-path.patch + modified patches: + - icedove/save-a-copy-of-a-attached-file-when-sending-from-OOo.patch + obsolete patches (fixed upstream): + - debian-hacks/bzXXX-ftbfs-static-with-system-hunspell.patch + - fixes/Bug-626035-Modify-the-way-arm-compiler-flags-are-set.patch + - fixes/Bug-639554-Install-sdk-bin-with-make-install.-r-bsme.patch + - fixes/Bug-640494-part-1-Get-rid-of-STL-algorithm-use-in-js.patch + - fixes/Bug-640494-part-2-Use-bitwise-operations-in-JSDOUBLE.patch + - fixes/Bug-652139-Use-an-integer-type-in-DocumentViewerImpl.patch + - fixes/Bug-662224-Define-NS_ATTR_MALLOC-and-NS_WARN_UNUSED_.patch + - fixes/Bug-668906-Do-not-call-openUnsharedDatabase-with-a-n.patch + - fixes/Bug-671564-Initialize-NS_XPCOM_LIBRARY_FILE-from-NS_.patch + - fixes/Disable-building-embedded-libjpeg-turbo-when-buildin.patch + - porting/Allow-to-build-yuv_convert_arm.cpp-on-armv4t.patch + - porting/Bug-638056-Avoid-The-cacheFlush-support-is-missing-o.patch + - porting/Fix-FTBFS-in-IPC-on-Linux-PPC.patch + - porting/Fix-FTBFS-in-xpcom-base-on-armv4t.patch + - system-libs/libxul-linking-error-with-enable-system-ffi-and-stat.patch + * [5f6e50f] add Japanese translation for desktop menu entry. Thanks to + Hideki Yamane (Closes: #640679) + * [591f76c] add build depends unzip + * [0af372f] remove upstream integrated CFLAGS and CXXFLAGS '-g -std=gnu++0x' + * [a4c8b2f] adjust install and links file to new upstream + * [332b7a8] Revert "override libtheora embedded-library error" no longer + needed + + -- Christoph Goehre Sat, 05 Nov 2011 20:31:29 +0100 + +icedove (5.0-2) experimental; urgency=low + + * [7f92927] fix FTBFS on ia64: use gcc with -O2 instead of -Os + * [b6b8dea] Disable methodjit on armel + * [5b45336] remove obsolete conffiles with dpkg-maintscript-helper + (Closes: #636819) + * [868cfa3] rebuild patch queue from patch-queue branch + added patches: + - porting/Allow-ipc-code-to-build-on-GNU-hurd.patch - fix building on + GNU/hurd - Thanks to Pino Toscano + + -- Christoph Goehre Sun, 07 Aug 2011 15:35:09 +0200 + +icedove (5.0-1) experimental; urgency=low + + * New Upstream Version (Closes: #632037) + * [98c5a8f] build against libffi and libvpx + * [52dff12] build javascript lib as shared library + * [6f1c24d] build against mozilla png library + * [9e16beb] c-sdk moved from directory/sdks/c-sdk to ldap/sdks/c-sdk + * [57763a0] override libtheora embedded-library error + * [fc71b62] adjust install/links files for new upstream version + * [6e83a58] Revert "lintian: override ancient-libtool warning" override no + longer needed + * [d65b463] change hardcoded list of non-Linux build depends into linux-any + (Closes: #634301) + * [ff3a8f3] remove file compare in build run + * [a21efa9] add branding for icedove 5.0 + * [7023939] update porting/Fix-FTBFS-in-xpcom-base-on-armv4t.patch - fix + building on armhf + + -- Christoph Goehre Wed, 03 Aug 2011 18:25:17 +0200 + +icedove (3.1.11-1) unstable; urgency=high + + * New Upstream Version + - MFSA 2011-19 aka CVE-2011-2364, CVE-2011-2365, CVE-2011-2374, + CVE-2011-2376: + Miscellaneous memory safety hazards (rv:3.0/1.9.2.18) + - MFSA 2011-20 aka CVE-2011-2373: Use-after-free vulnerability when + viewing XUL document with script disabled + - MFSA 2011-21 aka CVE-2011-2377: Memory corruption due to + multipart/x-mixed-replace images + - MFSA 2011-22 aka CVE-2011-2371: Integer overflow and arbitrary code + execution in Array.reduceRight() + - MFSA 2011-23 aka CVE-2011-0083, CVE-2011-0085, CVE-2011-2363: + Multiple dangling pointer vulnerabilities + - MFSA 2011-24 aka CVE-2011-2362: Cookie isolation error + * [2a82ce8] DM-Upload-Allowed is superfluous since I'm DD + + -- Christoph Goehre Sun, 26 Jun 2011 10:35:31 +0200 + +icedove (3.1.10-2) unstable; urgency=low + + * [de81b7f] remove obsolete build depends libxp-dev (Closes: #623668) + * [633782d] change DEB_HOST_MULTIARCH back to DEB_HOST_GNU_TYPE and + downgrade sqlite version (Closes: #627598) + + -- Christoph Goehre Mon, 06 Jun 2011 20:53:54 +0200 + +icedove (3.1.10-1) unstable; urgency=high + + * New Upstream Version (Closes: #625207) + - MFSA 2011-12 aka CVE-2011-0069, CVE-2011-0070, CVE-2011-0072, + CVE-2011-0074, CVE-2011-0075, CVE-2011-0077, + CVE-2011-0078, CVE-2011-0080, CVE-2011-0081: + Miscellaneous memory safety hazards (rv:2.0.1/ 1.9.2.17/ 1.9.1.19) + - MFSA 2011-16 aka CVE-2011-0071: Directory traversal in resource: protocol + * [78e0217] build against system libbz2 + * [e6af761] build against system libpng + * [4b57c30] build against system libhunspell + * [937f0bd] double check to build against most system libraries + * [d6de723] rebuild patch queue from patch-queue branch + added patches (Closes: #624969): + - 0072-fix-building-with-gcc-4.6-Add-constructor-to-placate.patch + - 0073-fix-building-with-gcc-4.6-os2.cc-missing-include-cst.patch + - 0074-Add-constructor-for-nsCaseInsensitiveStringComparato.patch + - 0075-Add-constructor-for-nsXULAppInfo-which-inherits-from.patch + - 0076-Add-constructor-for-GTKEmbedDirectoryProvider.patch + modified patches: + - 0056-Disable-APNG-support-when-system-libpng-doesn-t-supp.patch + obsolete patches (fixed upstream): + - 0051-Do-exec-instead-of-uselessly-forking-in-xulrunner-la.patch + - 0072-Add-support-for-libnotify-0.7.patch + * [e190ef1] bump up standards version to 3.9.2 (change DEB_HOST_GNU_TYPE to + DEB_HOST_MULTIARCH) + + -- Christoph Goehre Tue, 10 May 2011 20:03:04 +0200 + +icedove (3.1.9-2) unstable; urgency=low + + * Upload to unstable + * [ace3b6f] rebuild patch queue from patch-queue branch + added patches: + - 0072-Add-support-for-libnotify-0.7.patch + * [910f213] use DEP5 for copyright file + * [3ae4c8b] set global section to 'mail' + * [42c9c89] icedove.1: icedove is derived from Thunderbird instead of + Mozilla suite + + -- Christoph Goehre Sat, 02 Apr 2011 09:43:04 +0200 + +icedove (3.1.9-1) experimental; urgency=low + + * New Upstream Version + - MFSA 2011-01 aka CVE-2011-0053, CVE-2011-0062: Miscellaneous memory + safety hazards (rv:1.9.2.14/ 1.9.1.17) + - MFSA 2011-08 aka CVE-2010-1585: ParanoidFragmentSink allows javascript: + URLs in chrome documents + - MFSA 2011-09 aka CVE-2011-0061: Crash caused by corrupted JPEG image + * [699536a] rebuild patch queue from patch-queue branch + added patches: + - 0069-save-a-copy-of-a-attached-file-when-sending-from-OOo.patch + (Closes: #505875) + - 0070-News-article-is-empty-if-selected-during-download-fr.patch + (Closes: #487494) + - 0071-restore-icedove-on-login-by-session-management.patch + (Closes: #403458) + modified patches: + - 0003-no_dynamic_nss_softokn.patch + - 0010-Support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch + - 0030-Don-t-error-out-when-run-time-libsqlite-is-older-tha.patch + * [98d8ac0] c-sdk move to sdks/c-sdk - adjust + debian/{copyright,remove.nonfree,rules} + + -- Christoph Goehre Wed, 09 Mar 2011 20:21:59 +0100 + +icedove (3.1.7-1) experimental; urgency=low + + * New Upstream Version (Closes: #606977) + - MFSA 2010-74 aka CVE-2010-3776, CVE-2010-3777: Miscellaneous memory + safety hazards (rv:1.9.2.13/ 1.9.1.16) + - MFSA 2010-75 aka CVE-2010-3769: Buffer overflow while line breaking + after document.write with long string + - MFSA 2010-78 aka CVE-2010-3768: Add support for OTS font sanitizer + * [46e3e8a] rebuild patch queue from patch-queue branch + added patches: + - 0068-fix-forwarding-of-Simple-HTML-email.patch + obsolete patches (fixed upstream): + - 0017-Implement-sync_instruction_memory-for-sparc-linux.patch + - 0059-Fix-startup-problem-with-symlinked-components-e.g.-e.patch + * [9fcce0c] add license info for gfx/ots + + -- Christoph Goehre Mon, 13 Dec 2010 17:59:50 +0100 + +icedove (3.1.6-1) experimental; urgency=low + + * New Upstream Version (Closes: #601334) + - MFSA 2010-64 aka CVE-2010-3175, CVE-2010-3176: Miscellaneous memory + safety hazards (rv:1.9.2.11/ 1.9.1.14) + - MFSA 2010-65 aka CVE-2010-3179: Buffer overflow and memory corruption + using document.write + - MFSA 2010-66 aka CVE-2010-3180: Use-after-free error in nsBarProp + - MFSA 2010-67 aka CVE-2010-3183: Dangling pointer vulnerability in + LookupGetterOrSetter + - MFSA 2010-69 aka CVE-2010-3178: Cross-site information disclosure via + modal calls + - MFSA 2010-71 aka CVE-2010-3182: Unsafe library loading vulnerabilities + - MFSA 2010-73 aka CVE-2010-3765: Heap buffer overflow mixing + document.write and DOM insertion + * [270fd51] rebuild patch queue from patch-queue branch + added patches: + - 0069-Use-errno.ENOENT-instead-of-2-in-JarMaker.py.patch + modified patches: + - 0009-fix-branding-in-migration-wizard-and-the-addon-manag.patch + * [24421f4] bump build depends for libnspr4-dev, libnss3-dev and + libsqlite3-dev + + -- Christoph Goehre Wed, 10 Nov 2010 07:11:17 +0100 + +icedove (3.1.4-1) experimental; urgency=low + + * New Upstream Version + + -- Christoph Goehre Sat, 18 Sep 2010 18:25:37 +0200 + +icedove (3.1.3-1) experimental; urgency=low + + * New Upstream Version + - MFSA 2010-49 aka CVE-2010-3169: Miscellaneous memory safety hazards + (rv:1.9.2.9/ 1.9.1.12) + - MFSA 2010-50 aka CVE-2010-2765: Frameset integer overflow vulnerability + - MFSA 2010-51 aka CVE-2010-2767: Dangling pointer vulnerability using DOM + plugin array + - MFSA 2010-53 aka CVE-2010-3166: Heap buffer overflow in + nsTextFrameUtils::TransformText + - MFSA 2010-54 aka CVE-2010-2760: Dangling pointer vulnerability in + nsTreeSelection + - MFSA 2010-55 aka CVE-2010-3168: XUL tree removal crash and remote code + execution + - MFSA 2010-56 aka CVE-2010-3167: Dangling pointer vulnerability in + nsTreeContentView + - MFSA 2010-57 aka CVE-2010-2766: Crash and remote code execution in + normalizeDocument + - MFSA 2010-59 aka CVE-2010-2762: SJOW creates scope chains ending in + outer object + - MFSA 2010-61 aka CVE-2010-2768: UTF-7 XSS by overriding document charset + using type attribute + - MFSA 2010-62 aka CVE-2010-2769: Copy-and-paste or drag-and-drop into + designMode document allows XSS + - MFSA 2010-63 aka CVE-2010-2764: Information leak via XMLHttpRequest + statusText + * [9a03eb1] rebuild patch queue from patch-queue branch + added patches: + - 0060-fix-FTBFS-on-hurd.patch (Closes: #595665) + - 0061-Enable-x64-JIT-backend-by-default.patch + - 0062-Fix-unaligned-reads-in-qcms.patch + - 0063-Import-js-src-nanojit-njcpudetect.h.patch + - 0064-Use-clz-on-android-even-for-armv5-target.patch + - 0065-Fix-ARM-verbose-assembly-output-for-BLX.patch + - 0066-Get-rid-of-blx_lr_bug.patch + - 0067-Avoid-some-ARM-CPU-arch-related-runtime-tests-depend.patch + - 0068-ARMv4T-support-for-nanojit.patch + + -- Christoph Goehre Tue, 14 Sep 2010 13:41:19 +0200 + +icedove (3.1.2-2) experimental; urgency=low + + * [e1435dc] rebuild patch queue from patch-queue branch + added patches: + - 0060-Fix-startup-problem-with-symlinked-components-e.g.-e.patch + (Closes: #592531) + modified patches: + - 0048-Add-nanojit-support-for-ARMv4T.patch - Fix FTBFS on armel + + -- Christoph Goehre Sat, 21 Aug 2010 14:51:03 +0200 + +icedove (3.1.2-1) experimental; urgency=low + + * New Upstream Version (Closes: #589666, #591899) + - MFSA 2010-34 aka CVE-2010-1211, CVE-2010-1212: Miscellaneous memory + safety hazards (rv:1.9.2.7/ 1.9.1.11) + - MFSA 2010-38 aka CVE-2010-1215: Arbitrary code execution using SJOW and + fast native function + - MFSA 2010-39 aka CVE-2010-2752: nsCSSValue::Array index integer overflow + - MFSA 2010-40 aka CVE-2010-2753: nsTreeSelection dangling pointer remote + code execution vulnerability + - MFSA 2010-41 aka CVE-2010-1205: Remote code execution using malformed PNG + image + - MFSA 2010-42 aka CVE-2010-1213: Cross-origin data disclosure via Web + Workers and importScripts + - MFSA 2010-43 aka CVE-2010-1207: Same-origin bypass using canvas context + - MFSA 2010-44 aka CVE-2010-1210: Characters mapped to U+FFFD in 8 bit + encodings cause subsequent character to vanish + - MFSA 2010-46 aka CVE-2010-0654: Cross-domain data theft using CSS + - MFSA 2010-47 aka CVE-2010-2754: Cross-origin data leakage from script + filename in error messages + * [6b9976e] rebuild patch queue from patch-queue branch + modified patches: + - 0010-Support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch + - 0015-Don-t-register-plugins-if-the-MOZILLA_DISABLE_PLUGIN.patch + - 0018-Work-around-FTBFS-on-mips-by-disabling-TLS-support.patch + - 0034-Fix-compiler-errors-with-g-4.4-with-std-gnu-0x.patch + - 0045-Expose-fullpath-from-nsIPluginTag.patch + - 0047-Use-syscall-for-mmap-and-munmap-and-disable-ncpus-in.patch + - 0050-Set-javascript.options.showInConsole.patch + - 0057-Allow-to-build-against-system-libffi.patch + - 0058-Ignore-system-libjpeg-libpng-and-zlib-version-checki.patch + - 0059-Disable-APNG-support-when-system-libpng-doesn-t-supp.patch + * [16b0e7e] fix FTBFS on kfreebsd-* and hurd-i386 by passing + --disable-necko-wifi to configure (Closes: #589476) + * [15a02c7] bump up standards version to 3.9.1 + + -- Christoph Goehre Fri, 13 Aug 2010 12:18:21 +0200 + +icedove (3.1-1) experimental; urgency=low + + * New Upstream Version + * [124a316] add additional build depends libnotify-dev + * [5ed6a72] adjust branding for Icedove 3.1 + * [bed8969] install further js files shipped with Icedove 3.1 + * [02456e6] replace blue icedove icons with green version + * [036921f] regenerate patch queue for 3.1 Icedove release + * [a7fa393] build with system ffi + * [d8650f7] ship icedove svg file for low resolution icons too + * [7718c55] bump Standards Version to 3.9.0 and downgrade Conflicts to + Breaks + * [9621fc6] lintian: override ancient-libtool warning + + -- Christoph Goehre Sat, 17 Jul 2010 17:19:58 +0200 + +icedove (3.0.5-1) unstable; urgency=low + + * New Upstream Version + - MFSA 2010-25 aka CVE-2010-1121: Re-use of freed object due to scope + confusion + - MFSA 2010-26 aka CVE-2010-1200, CVE-2010-1201, CVE-2010-1202: Crashes + with evidence of memory corruption (rv:1.9.2.4/ 1.9.1.10) + - MFSA 2010-29 aka CVE-2010-1196: Heap buffer overflow in + nsGenericDOMDataNode::SetTextInternal + - MFSA 2010-30 aka CVE-2010-1199: Integer Overflow in XSLT Node Sorting + * [9774410] rebuild patch queue from patch-queue branch + added patches: + - 0045-Fix-misalignments-in-help-command-line.patch + - 0046-Fix-misalignments-in-help-command-line.patch + - 0047-KDE-Gnome-startup-notification-not-disappearing-when.patch + - 0048-KDE-Gnome-startup-notification-not-disappearing-for-.patch + - 0049-Use-char16_t-when-available-and-when-it-is-don-t-tes.patch + - 0050-Fix-compiler-errors-with-g-4.4-with-std-gnu-0x.patch + - 0051-Add-xptcall-support-for-SH4-processors.patch + modified patches: + - 0028-Avoid-crashing-when-trying-to-kill-a-nsProcess-that-.patch + obsolete patches (fixed upstream): + - 0021-Avoid-creating-the-updates-directory-when-update-ser.patch + - 0035-Fix-stack-alignment-on-function-calls-in-JIT-on-ARM.patch + * [3b98c84] avoid unneeded package depends by building with + '-Wl,--as-needed' + * [0067020] Build with -std=gnu++0x + * [72d4300] add pkg-config file for icedove (Closes: #577740) + * [e6af35d] enlarge package description with specification from icedove 2.0 + (Closes: #565887) + * [ef0bc10] add support for new Debian arch: powerpcspe (Closes: #586100) - + thanks to Sebastian Andrzej Siewior + * [5ae6099] use high bandwidth server in watch file to get new upstream + release + * [5e6d641] remove obsolete build depends libkrb5-dev + * [8ed7848] remove unused DEBIAN_VERSION vars in rules file + * [9959bd5] DEB_HOST_GNU_TYPE, DEB_BUILD_GNU_TYPE and DEB_BUILD_ARCH are + defined by cdbs too + * [9f6c088] Fix misalignments in --help command line + + -- Christoph Goehre Sat, 19 Jun 2010 23:26:55 +0200 + +icedove (3.0.4-3) unstable; urgency=low + + * [4026b50] icedove-dev need depend on libnspr4-dev and libnss3-dev + (Closes: #455725) + * [1fee936] don't run configure with --enable-optimize and --disable- + optimize if DEB_BUILD_OPTIONS contains noopt + * [02c0ea3] ship account autoconfig file for Riseup Networks (riseup.net) + (Closes: #577616) + * [e710d08] suggest libgssapi-krb5-2 for Kerberos login possibility + * [7609291] build a shared icedove binary. This avoid crashes because of + mixed functions from system and icedove itself (e.g. str2charray from + libldap_r-2.4.so.2 and libldap60.so). (Closes: #578916) + * [68f4b49] downgrade gnome stuff from Recommends to Suggests + (Closes: #579714) + * [bcff10b] install mailViews.dat into usr/share/icedove/defaults/messenger + + -- Christoph Goehre Fri, 14 May 2010 22:21:32 +0200 + +icedove (3.0.4-2) unstable; urgency=low + + * [57f0a8b] remove icedove-3.0 transitional package (Closes: #576741) + * [8008231] remove wrong mime types in desktop file + * [a12edde] set StartupWMClass in desktop file to Icedove-bin + * [7512224] extend package description of icedove, icedove-dev and + icedove-dbg + * [7e725b9] fix FTBFS on alpha by passing '-Wl,--no-relax' to gcc + * [92d3515] Switch to dpkg-source 3.0 (quilt) format + * [14d5894] rebuild patch queue from patch-queue branch + added patches: + - 0046-add-missing-headers-for-icedove-dev-package.patch (Closes: #577021) + modified patches: + - 0012-Support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch + - 0020-Work-around-FTBFS-on-mips-by-disabling-TLS-support.patch + * [2cdd850] remove obsolete thunderbird 3.0a1pre postinst stuff + * [443f44b] process directory/c-sdk/configure with autoconf too + * [66c2f65] remove obsolete build depends librsvg2-bin and patchutils + + -- Christoph Goehre Sun, 11 Apr 2010 12:44:26 +0200 + +icedove (3.0.4-1) unstable; urgency=low + + [ Guido Günther ] + * [01983a4] Add missing message/rfc822 mime type for eml files + (Closes: #574528) + + [ Christoph Goehre ] + * New Upstream Version fixes: + - MFSA 2010-16 aka CVE-2010-0173, CVE-2010-0174: Crashes with evidence of + memory corruption (rv:1.9.2.2/ 1.9.1.9/ 1.9.0.19) + - MFSA 2010-17 aka CVE-2010-0175: Remote code execution with + use-after-free in nsTreeSelection + - MFSA 2010-18 aka CVE-2010-0176: Dangling pointer vulnerability in + nsTreeContentView + - MFSA 2010-22 aka CVE-2009-3555: Update NSS to support TLS renegotiation + indication + - MFSA 2010-24 aka CVE-2010-0182: XMLDocument::load() doesn't check + nsIContentPolicy + * upload icedove 3 to unstable (Closes: #401848, #422886, #425497, #430644, + #483550, #495522, #501113, #552617, #574188) + * rebuild patch queue from patch-queue branch: + added patches: + - 0044-don-t-remove-xpt-tools.patch + - 0045-Don-t-error-out-when-run-time-libsqlite-is-older-tha.patch + modified patches: + - 0011-fix-branding-in-migration-wizard-and-the-addon-manag.patch + - 0012-Support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch + - 0030-Force-better-nsAutoT-Ptr-Array-buffer-alignment.patch + - 0035-Fix-stack-alignment-on-function-calls-in-JIT-on-ARM.patch + obsolete patches (fixed upstream): + - 0021-Fix-crash-with-SwitchProxy-installed.patch + - 0023-Don-t-remove-build-automationutils.py-on-make-clean.patch + - 0039-Don-t-show-the-SVG-output-option-in-the-print-dialog.patch + * [a7f3529] Revert "disable prefetch service". This bug was already fixed in + 3.0.2 (CVE-2009-4629) and 'network.prefetch-next' has no effect in + icedove. + * [fecc0b4] install versioned build depends instead of checking on build + time + * [4806890] enable building of icedove-dev package + * [412b8ac] be more explicit on installing file into icedove package + * [23b1d4b] depends on newer version of libnspr4-dev and libnss3-dev + * [809c723] lintian: idl files didn't need to be executable + * [ecd284e] lintian: add ${shlibs:Depends} to icedove-dev package + * [da75ee2] replace/remove non-free searchplugin icons and doubtful + origin file in mozilla folder (Closes: #567917) + * [eaf405e] update /usr/lib/icedove/dictionaries symlink to point to + /usr/share/hunspell + * [fe362ba] describe profile renaming on update to icedove 3.0 + (Closes: #566329) + + -- Christoph Goehre Mon, 05 Apr 2010 21:11:42 +0200 + +icedove (3.0.3-1) experimental; urgency=low + + * New Upstream Version fixes: + - missing folders or empty folder pane after updating to version 3.0.2 + * [a69cdfd] rebuild patches from patch-queue: + - additional fix for FTBFS on kfreeBSD + * [e4bffd4] disable prefetch service (Closes: #572789) + * [3838bbe] branding files shouldn't be executable + * [3dc6688] add missing newline in logo license file + + -- Christoph Goehre Sat, 06 Mar 2010 21:48:50 +0100 + +icedove (3.0.2-1) experimental; urgency=low + + * New Upstream Version fixes: + - MFSA 2010-01 aka CVE-2010-0159: Crashes with evidence of memory + corruption (rv:1.9.1.8/ 1.9.0.18) + - MFSA 2010-03 aka CVE-2009-1571: Use-after-free crash in HTML parser + * [1fd705f] install menu file (Closes: #569166) + * [8df3f99] generate desktop files at build process + * [5b0bb84] add icedove branding logos + * [1ef1c10] copyright explanation of icedove artwork (Closes: #406849) + * [6cdc0b0] remove forgotten firefox branding icons (Closes: #567917) + * [cec6a38] swedish translation for desktop file (Closes: #420050) + * [0256328] readd translation for desktop file + * [20311f4] rebuild patches (most patches from Mike Hommey) + - fix FTBFS on kFreeBSD, hppa, mips + - stability patched for mips, alpha, sparc, ppc and arm + - really cleanup build directory on 'make clean/distclean' + - allow intl.locale.matchOS to be modified in user profile + * [0098f90] write manpage for icedove (Closes: #425490, #487493) + * [fbccfaa] no longer suggest libthai0 (Closes: #524436) + * [26d3e39] change suggests from transitional package latex-xft-fonts + to ttf-lyx (Closes: #539535) + * [e24801a] improve desktop file (remove deprecated items and + warnings/errors) + * [68885c4] bump up standards version to 3.8.4 + * [df39ede] use xpm icon in menu file to calm lintian + * [8303887] adjust sqlite version to new upstream dependency + + -- Christoph Goehre Sun, 28 Feb 2010 18:19:13 +0100 + +icedove (3.0.1-2) experimental; urgency=low + + [ Guido Günther ] + * [7ea7367] Explicitly pass build and host type to configure (Closes: + #546011) - thanks to Sven Joachim for the patch + * [7fca9e1] Add back icedove changelog of earlier versions + + [ Christoph Goehre ] + * [72b78cc] Support both - and _ separators in dictionary names - patch from + Reed Loden + * [9a96759] fix branding in migration wizard and the addon manager (Closes: + #565559)- patch from Edward J. Shornock + + -- Christoph Goehre Tue, 02 Feb 2010 20:32:24 +0100 + +icedove (3.0.1-1) experimental; urgency=low + + * New Upstream Version + * [8a2f5dc] define default options for git-import-orig + * [ac65b1b] refresh debian patches + * [851c5dc] rename binary packages to icedove (without version number) + * [6e12d1b] adjust cairo version to 1.8.8 + * [cd7cd6f] moving the old profile dir instead of copy + * [c342380] replace theme directory always by link to /usr/share if we + update to version 3 + * [c88eaa7] expansion of lib{dbusservice,mozgnome,nkgnomevfs}.so didn't work + with dpkg-shlibdeps - lets use the '-e' switch + + -- Christoph Goehre Thu, 21 Jan 2010 20:53:57 +0100 + +icedove (3.0-2) experimental; urgency=low + + * [f07e702] Add Replaces for icedove-gnome-support + * [72e66e7] Fix typo + + -- Guido Günther Fri, 08 Jan 2010 16:05:10 +0100 + +icedove (3.0-1) experimental; urgency=low + + * Final upstream version without any source code changes against RC2 + + [ Guido Günther ] + * [77d611e] Add Vcs-{Git,Browser} + * [ec7ddd6] Move VCS to where they belong + + [ Christoph Goehre ] + * [524d1f5] don't hardcode $MOZ_APP_NAME in Makefile.in file + * [0407ff3] mailclient bin called now $DEB_MOZ_APPLICATION + * [e6040b5] merge icedove-3.0-gnome-support into icedove-3.0 package + * [07417e0] install default theme and components/*.js into + /usr/share/icedove-3.0 + * [3d37478] add missed components files + * [f09cfad] add another preferences directory for applications: + preferences/syspref - thanks to Mike Hommey + * [d92e265] install debian config into /etc/icedove-3.0/pref and link + into defaults/syspref + * [18a886b] disable application update + * [76ea38a] let lockPref() in .js files work - thanks to Mike Hommey + * [e44133e] gnome-default-mail-client: check for MOZ_APP_NAME instead + for hardcoded 'thunderbird' + * [8573c8d] set DM-Upload-Allowed to yes + * [1c63920] install modules directory into /usr/share/icedove-3.0 + * [3a85ac6] add gbp.conf for easier package build with + git-buildpackage + * [7feb54a] add watch file + * [e0a1624] document how to clean upstream source code + + -- Christoph Goehre Fri, 08 Jan 2010 10:42:09 +0100 + +icedove (3.0~rc2-2) experimental; urgency=low + + [ Christoph Goehre ] + * [5b7992b] rename source package to unversioned name + * [cde3507] change Maintainer back to asac, add Uploaders Guido and me + * [978c58d] disable icedove-3.0-dev package build for now until it is fixed + upstream + * Upstream is identical to 3.0 final + + -- Guido Günther Thu, 17 Dec 2009 18:36:58 +0100 + +icedove-3.0 (3.0~rc2-1) experimental; urgency=low + + [ Christoph Goehre ] + * New Upstream Version (RC2) + - fixes 494014, 516950, 531278, 531502 in Mozilla Bugzilla + * [fc3fa5c] Revert "mark icedove-3.0-dev as transitional package for + xulrunner-dev" + + [ Guido Günther ] + * [51c1cca] Bump standards version + * [5e2a53c] Refer to versioned license + * [171f382] s/explicitely/explicitly/ + + -- Christoph Goehre Tue, 08 Dec 2009 18:46:28 +0100 + +icedove-3.0 (3.0~rc1-1) experimental; urgency=low + + * New Upstream Version (RC1) + * [cce57db] ship extracted upstream tarball in orig file + * [ee7677f] remove obsolet licence fix + * [7051ca8] install TB_ICON only once + * [4f20bb1] add unbranded preview theme icon + * [0002285] install non-binary stuff in /usr/share and link it into + /usr/lib + * [c9ce50f] get right of system myspell + * [5c96edf] remove version check for hunspell in debian/rules + * [13b57a3] mark icedove-3.0-dev as transitional package for + xulrunner-dev + * [8ecaec9] all packages need ${misc:Depends} as depends, if we use + debhelper + * [fc0dd78] dbg package must have section debug and priority extra + * [3a00f22] enable more config options and add build depends (filched from + iceape 2.0) + * [fd8e3ca] build against system sqlite if available + * [81165e1] build with 'export BUILD_OFFICIAL=1' + + -- Christoph Goehre Thu, 03 Dec 2009 10:16:46 +0100 + +icedove-3.0 (3.0~b3~hg20090713r3057-1~gbp253e4ab) sid; urgency=low + + * New snapshot. + + -- Guido Günther Tue, 14 Jul 2009 10:24:57 +0200 + +icedove-3.0 (3.0~b3~hg20090713r3057-1~gbpefd0706) sid; urgency=low + + * New snapshot. + + -- Guido Günther Tue, 14 Jul 2009 10:24:50 +0200 + +icedove-3.0 (3.0~b3~hg20090713r3057-1~gbpfeeee47) sid; urgency=low + + * New snapshot. + + -- Guido Günther Tue, 14 Jul 2009 10:11:10 +0200 + +icedove-3.0 (3.0~b3~hg20090505r2552-1~gbp595a0b7) sid; urgency=low + + * New snapshot. + + -- Guido Günther Tue, 05 May 2009 18:03:25 +0200 + +icedove-3.0 (3.0~b3~hg20090427r2499-1~gbpbeb7cd6) sid; urgency=low + + * New snapshot. + + -- Guido Günther Mon, 27 Apr 2009 20:05:51 +0200 + +icedove-3.0 (3.0~b3~hg20090427r2499-1~gbp80a8829) sid; urgency=low + + * New snapshot. + + -- Guido Günther Mon, 27 Apr 2009 19:56:09 +0200 + +icedove-3.0 (3.0~b3~hg20090422r2448-1~gbpd4ee3b3) pkg-mozext; urgency=low + + * New snapshot. + + -- Guido Günther Wed, 22 Apr 2009 09:14:54 +0200 + +icedove-3.0 (3.0~b3~hg20090421r2441-1~gbp66d9bed) pkg-mozext; urgency=low + + * New snapshot. + + -- Guido Günther Tue, 21 Apr 2009 19:35:09 +0200 + +icedove-3.0 (3.0~b3~hg20090420r2424-1~gbp47b25b8) pkg-mozext; urgency=low + + * New snapshot. + + -- Guido Günther Mon, 20 Apr 2009 11:28:56 +0200 + +icedove-3.0 (3.0~b3~hg20090418r2418+nobinonly-1~0~gbpa19783) pkg-mozext; urgency=low + + * Initial release + + -- Guido Günther Sun, 19 Apr 2009 13:44:33 +0200 + +icedove (2.0.0.22-1.1) unstable; urgency=low + + * Non-maintainer upload. + * update /usr/lib/icedove/dictionaries symlink to point to + /usr/share/hunspell (closes: #549876) + * add $[shlibs:Depends} to iceape-dev + + -- Rene Engelhard Mon, 09 Nov 2009 17:11:50 +0100 + +icedove (2.0.0.22-1) unstable; urgency=low + + * New upstream security/stability update (v2.0.0.21/v2.0.0.22) (Closes: 535124) + * MFSA 2009-33: Crash viewing multipart/alternative message with text/enhanced part + * MFSA 2009-32 aka CVE-2009-1841: JavaScript chrome privilege escalation + * MFSA 2009-29 aka CVE-2009-1838: Arbitrary code execution using event listeners + attached to an element whose owner document is null + * MFSA 2009-27 aka CVE-2009-1836: SSL tampering via non-200 responses to proxy + CONNECT requests + * MFSA 2009-24 aka CVE-2009-1832+CVE-2009-1831: Crashes with evidence of memory + corruption (rv:1.9.0.11) + * MFSA 2009-17 aka CVE-2009-1307: Same-origin violations when Adobe Flash loaded + via view-source: scheme + * MFSA 2009-14 aka CVE-2009-1303+CVE-2009-1302: Crashes with evidence of memory + corruption (rv:1.9.0.9) + * MFSA 2009-15 aka CVE-2009-0652: URL spoofing with box drawing character + * MFSA 2009-10 aka CVE-2009-0040: Upgrade PNG library to fix memory safety hazards + * MFSA 2009-09 aka CVE-2009-0776: XML data theft via RDFXMLDataSource and cross-domain + redirect + * MFSA 2009-07 aka CVE-2009-0771,-0772,-0773,-0774: Crashes with evidence of memory + corruption (rv:1.9.0.7) + * MFSA 2009-01 aka CVE-2009-0352,CVE-2009-0353 Crashes with evidence of memory + corruption (rv:1.9.0.6) + * adjust patches to changed codebase + - update debian/patches/ubuntu-mail-app-xre-name + + -- Alexander Sack Wed, 01 Jul 2009 12:18:03 +0200 + +icedove (2.0.0.19-1) unstable; urgency=medium + + * New upstream security/stability update (v.2.0.0.18/2.0.0.19) Closes: 505563 + 2.0.0.18: + * MFSA 2008-48 aka CVE-2008-5012 - Image stealing via canvas and HTTP + redirect + * MFSA 2008-50 aka CVE-2008-5014 - Crash and remote code execution via + __proto__ tampering + * MFSA 2008-52 aka CVE-2008-5017 - Crashes with evidence of memory + corruption (rv:1.9.0.4/1.8.1.18); Browser engine crash in "Firefox 2 + and 3" + * MFSA 2008-52 aka CVE-2008-5018 - Crashes with evidence of memory + corruption (rv:1.9.0.4/1.8.1.18); JavaScript engine crash - "Firefox 2 + and 3" + * MFSA 2008-55 aka CVE-2008-5021 - Crash and remote code execution in + nsFrameManager + * MFSA 2008-56 aka CVE-2008-5022 - nsXMLHttpRequest::NotifyEventListeners() + same-origin violation + * MFSA 2008-58 aka CVE-2008-5024 - Parsing error in E4X default namespace + * MFSA 2008-59 aka CVE-2008-4582 - Script access to .documentURI and + .textContent in mail + 2.0.0.19: + * MFSA 2008-60 aka CVE-2008-5500 - Crashes with evidence of memory + corruption (rv:1.9.0.5/1.8.1.19); Layout engine crashes - Firefox 2 and 3 + * MFSA 2008-61 aka CVE-2008-5503 - Information stealing via + loadBindingDocument + * MFSA 2008-64 aka CVE-2008-5506 - XMLHttpRequest 302 response disclosure + * MFSA 2008-65 aka CVE-2008-5507 - Cross-domain data theft via script + redirect error message + * MFSA 2008-66 aka CVE-2008-5508 - Errors parsing URLs with leading + whitespace and control characters + * MFSA 2008-67 aka CVE-2008-5510 - Escaped null characters ignored by CSS + parser + * apply Maintainers, Uploaders changes done in 2.0.0.17 upload to + debian/control + - update debian/control + * adjust/refresh patches to changed upstream code + - update debian/patches/moz-app-name-as-mail-binary-name + - update debian/patches/autoconf2.13-rerun + + -- Alexander Sack Sat, 03 Jan 2009 16:27:42 +0100 + +icedove (2.0.0.17-1) unstable; urgency=low + + * New upstream security/stability update (v.2.0.0.17), Closes: #500721 + * MFSA 2008-37 aka CVE-2008-0016 - UTF-8 URL stack buffer overflow + * MFSA 2008-38 aka CVE-2008-3835 - nsXMLDocument::OnChannelRedirect() + same-origin violation + * MFSA 2008-41 aka CVE-2008-4058, CVE-2008-4059, CVE-2008-4060 - Privilege + escalation via XPCnativeWrapper pollution + * MFSA 2008-42 aka CVE-2008-4061, CVE-2008-4062, CVE-2008-4063, + CVE-2008-4064 - Crashes with evidence of memory corruption + (rv:1.9.0.2/1.8.1.17) + * MFSA 2008-43 aka CVE-2008-4065, CVE-2008-4066 - BOM characters, low + surrogates stripped from JavaScript before execution + * MFSA 2008-44 aka CVE-2008-4067, CVE-2008-4068 - resource: traversal + vulnerabilities + * MFSA 2008-46 aka CVE-2008-4070 - Heap overflow when canceling newsgroup + message + + [ Michael Casadevall ] + * debian/control: + - Changed maintainer to Ubuntu Mozillateam + - Added Uploaders to the team + - Set DM-Upload-Allowed + - Bumped standards version to 3.8.0 + + [ Alexander Sack ] + * Closes: #497491 - Icedove inappropriately sets file-/MIME-type + associations in .desktop database; we drop the Mime-Type= entry + from debian/icedove.desktop + - update debian/icedove.desktop + + -- Michael Casadevall Sat, 18 Oct 2008 09:07:20 -0400 + +icedove (2.0.0.16-1) unstable; urgency=low + + * New upstream security/stability update (v2.0.0.16) fixes: + * MFSA 2008-21 aka CVE-2008-2798 - Crashes with evidence of memory + corruption + * MFSA 2008-21 aka CVE-2008-2799 - Crashes with evidence of memory + corruption + * MFSA 2008-24 aka CVE-2008-2802 - Chrome script loading from fastload file + * MFSA 2008-25 aka CVE-2008-2803 - Arbitrary code execution in + mozIJSSubScriptLoader.loadSubScript() + * MFSA 2008-26 aka CVE-2008-0304 - (followup) Buffer length checks in MIME + processing + * MFSA 2008-29 aka CVE-2008-2807 - Faulty .properties file results in + uninitialized memory being used + * MFSA 2008-31 aka CVE-2008-2809 - Peer-trusted certs can use alt names to + spoof + * MFSA 2008-33 aka CVE-2008-2811 - Crash and remote code execution in block + reflow + * MFSA 2008-34 aka CVE-2008-2785 - Remote code execution by overflowing CSS + reference counter + + * Closes: #483938 - add .desktop file translations (contributed by Timo + Jyrinki ) + - update debian/icedove.desktop + + (cherry pick rev77 from lp:~mozillateam/thunderbird/thunderbird.dev branch) + * drop patches applied upstream + - drop debian/patches/bz419350_attachment_306066.patch + - update debian/patches/series + + (cherry pick rev78 from lp:~mozillateam/thunderbird/thunderbird.dev branch) + * adjust patches diverged upstream + - update debian/patches/ubuntu-look-and-feel-report-a-bug-menuitem + + (cherry pick rev80 from lp:~mozillateam/thunderbird/thunderbird.dev branch) + * Closes: #489093 - add explicit -lfontconfig to linker flags used for gfx/ps + module to fix ftbfs in intrepid + - add debian/patches/bzXXX_ftbfs_fontconfig.patch + - update debian/patches/series + + -- Alexander Sack Thu, 24 Jul 2008 17:38:51 +0200 + +icedove (2.0.0.14-1) unstable; urgency=medium + + * Upstream stability/security release, fixes + + MFSA 2008-15 aka CVE-2008-1236 - Crashes with evidence of memory corruption + (rv:1.8.1.13) - browser engine + + MFSA 2008-15 aka CVE-2008-1237 - Crashes with evidence of memory corruption + (rv:1.8.1.13) - javascript engine + + MFSA 2008-14 aka CVE-2008-1233, CVE-2008-1234, CVE-2008-1235 - JavaScript + privilege escalation and arbitrary code execution + * update debian/remove.nonfree script to pull branding from bzr branch hosted + at https://code.edge.launchpad.net/~mozillateam/thunderbird/icedove-branding-2.0.0.x + - update debian/remove.nonfree + * fix fallback https handler by adding pref("network.protocol-handler.app.https", + "x-www-browser") to default system preference file. (Closes: #460954) + - update debian/icedove.js + * drop patches applied upstream: + - delete debian/patches/bz399589_fix_missing_symbol_with_new_nss.patch + - update debian/patches/series + * fix broken reply-to-list extension (Closes: #439369) + - add debian/patches/replytolist_2.x.patch + - update debian/patches/series + * fix ftbfs on ia64 (Closes: #477281) + - add debian/patches/bz419350_attachment_306066.patch + - update debian/patches/series + * drop forced use of gcc/g++ 4.2 and use default compiler again; in turn we + drop gcc-4.2 and g++-4.2 from Build-Depends + - update debian/control + - update debian/rules + + -- Alexander Sack Fri, 09 May 2008 17:57:55 +0200 + +icedove (2.0.0.12-1) unstable; urgency=low + + * New Upstream stability/security release, fixes various advisories: + + CVE-2008-0416 aka MFSA 2008-13 Multiple XSS vulnerabilities from + character encoding + + CVE-2008-0304 aka MFSA 2008-12 Heap buffer overflow in external MIME + bodies + + CVE-2008-0418 aka MFSA 2008-05 Directory traversal via chrome: URI + + CVE-2008-0415 aka MFSA 2008-03 Privilege escalation, XSS, Remote Code + Execution + + CVE-2008-0412 and CVE-2008-0413 aka MFSA 2008-01 Crashes with evidence + of memory corruption (rv:1.8.1.12) - layout and javascript + * Fix severe problems for powerpc architecture, by reverting arch-detect + patch to introduce special behaviour only when FORCE_USE_HOST_OS is set in + environment. For now only s390 is special cased in rules - as thats the + architecture we introduced this patch for (Closes: #461981). + - update debian/rules + - debian/patches/arch-detect + * fix "FTBFS with libnss3-dev=3.12.0~beta2-1" by introducing symbols not + exported by new nss anymore. Reuse thunderbird patch from ubuntu. + (Closes: #470128) + - added debian/patches/bz399589_fix_missing_symbol_with_new_nss.patch + - update debian/patches/series + * add Vcs-Bzr: header to control pointing to the mozillateam packaging + branch https://code.launchpad.net/~mozillateam/thunderbird/icedove-2.0.0.x + - update debian/control + * introduce .autoreg feature and touch /usr/lib/icedove/.autoreg in + icedove-gnome-support.postinst and icedove-gnome-support.prerm iif that + file exists. + - update debian/rules + - added debian/icedove-gnome-support.postinst + - added debian/icedove-gnome-support.prerm + * Adjust multiple patches because of changed upstream code base + - update debian/patches/ubuntu-mail-app-xre-name + - update debian/patches/autoconf2.13-rerun + + -- Alexander Sack Sat, 05 Apr 2008 23:05:11 +0200 + +icedove (2.0.0.9-3) unstable; urgency=low + + * drop network.protocol-handler.external.http setting as it caused + regressions (Closes: 459564) + - update debian/icedove.js + + -- Alexander Sack Wed, 09 Jan 2008 18:56:28 +0100 + +icedove (2.0.0.9-2) unstable; urgency=low + + * pass host arch information to configure and trust the supplied architecture + information. Thanks to Bastian Blank. (Closes: 445959) + - update debian/rules + - add debian/patches/arch-detect + - update debian/patches/autoconf2.13-rerun + - update debian/patches/series + * use /usr/lib/icedove/icedove as gnome integration command used to update + gconf protocol handler. (Closes: 452919) + - add debian/patches/icedove_gnome_command + - update debian/patches/series + * prefer gnome registry to lookup protocol handler if we are in a gnome + session; in turn we enable x-www-browser as the http protocol by default + (Closes: 452882) + - add debian/patches/prefer_gnome_registry_in_gnome_session + - update debian/patches/series + - update debian/icedove.js + + -- Alexander Sack Sun, 30 Dec 2007 20:21:26 +0100 + +icedove (2.0.0.9-1) unstable; urgency=medium + + * new upstream stability/security update (v2.0.0.9): + - MFSA 2007-36 aka CVE-2007-4841: "URIs with invalid %-encoding mishandled + by Windows" + - MFSA 2007-29 aka CVE-2007-5339: "Crashes with evidence of memory + corruption (rv:1.8.1.8) - browser engine" + - MFSA 2007-29 aka CVE-2007-5340: "Crashes with evidence of memory + corruption (rv:1.8.1.8) - javascript engine" + * adapt adapt patches to new upstream codebase: + - drop debian/patches/bz389801_deb443454_fix_gtk_theme_crashes.patch + - update debian/patches/68_mips_performance.dpatch + - update debian/patches/series + - update debian/patches/autoconf2.13-rerun + * fix ftbfs due to changed cairo pc Requires: (Closes: 453179) + - add debian/patches/bz344818_att264996.patch + - update debian/patches/autoconf2.13-rerun + - update debian/patches/series + * add copyright file (Closes: 453365) + - add debian/copyright + * quote some if test ! ... lines to fix preinst errors (Closes: 427336) + - update debian/icedove.preinst + * update icedove menu section - use "Applications/Network/Communication" + (Closes: 444903) + - update debian/icedove.menu + * don't try to install debian/tmp/usr/lib/icedove/defaults/isp as its not + shipped by make install anymore + - update debian/icedove.install + + -- Alexander Sack Fri, 28 Dec 2007 16:05:05 +0100 + +icedove (2.0.0.6-1) unstable; urgency=low + + * new upstream release 2.0.0.6-1 fixes various security issues + (Closes: #444010): + - MFSA 2007-18 aka CVE-2007-3734, CVE-2007-3735 - Crashes with evidence of + memory corruption (rv:1.8.1.5). + - MFSA 2007-23 aka CVE-2007-3670 - Remote code execution by launching + Firefox from Internet Explorer (doesn't apply to linux). + - MFSA 2007-26 aka CVE-2007-3844 - Privilege escalation through + chrome-loaded about:blank windows. + - MFSA 2007-27 aka # CVE-2007-3845 - Unescaped URIs passed to external + programs. + * debian/patches/debian/patches/credits-rebranding: refresh patch because of + code-base change in new upstream release. + * debian/patche/bz389801_deb443454_fix_gtk_theme_crashes.patch,series: + import fix for theme crashes from bugzilla (Closes: 443454). + + -- Alexander Sack Mon, 08 Oct 2007 12:09:42 +0000 + +icedove (2.0.0.4.dfsg1-2) unstable; urgency=low + + * debian/patches/autoconf2.13-rerun: rerun to apply last commits + configure.in patch addition to configure. + * debian/patches/force-no-pragma-visibility-for-gcc-4.2_4.3, + debian/patches/series: don't use pragma for visibility as visibility + hints are not perfect yet in mozilla code base. + * debian/icedove.desktop: drop explicit .png extension from desktop icon name + * debian/icedove.desktop, debian/icedove.links, debian/icedove.menu: fix various + icon issues, by using /usr/share/icedove/icons/default.png instead of + mozicon128.png as source for standard icedove pixmaps link + (Closes: #427076, #437064, #437090). + * debian/control, debian/rules: use gcc-4.2 and g++-4.2 on all archs; add gcc-4.2 + and g++-4.2 to build-depends in control file. + * debian/icedove.links: provide usr/share/icedove/chrome/icons/default/messengerWindow16.png + as a link to usr/share/icedove/icons/mozicon16.png (Closes: #427723). + * debian/icedove.install, debian/icedove.links: install isp directories + /usr/share/icedove/isp and /usr/share/icedove/defaults/isp and link them to + pkglibdir accordingly (Closes: #428421). + + -- Alexander Sack Mon, 27 Aug 2007 23:48:53 +0200 + +icedove (2.0.0.4.dfsg1-1) unstable; urgency=low + + * debian/remove.nonfree: update list of non-free/binary-only file from + latest iceape updates" debian/remove.nonfree; update orig + tarball accordingly. (Closes: 400340) + * debian/control[.in]: icedove package now provides mail-reader, + imap-client, news-reader instead of www-browser (Closes: 425167) + + -- Alexander Sack Tue, 19 Jun 2007 15:00:12 +0200 + +icedove (2.0.0.4-1) unstable; urgency=low + + * stability/security upstream release 2.0.0.4 + - CVE-2007-2867 aka MFSA 2007-12 (l): Crashes with evidence of memory + corruption (rv:1.8.0.12/1.8.1.4) - layout engine + - CVE-2007-2868 aka MFSA 2007-12 (j): Crashes with evidence of memory + corruption (rv:1.8.0.12/1.8.1.4) - javascript engine + - CVE-2007-1558 aka MFSA 2007-15: Security Vulnerability in APOP + Authentication + * debian/patches/gcc-workaround-visibility-hidden, debian/patches/series: + applied upstream -> dropped visibility workaround patch + * debian/patches/gnome-mime-handling: updated patch for bz273524 in + response to upstream landing of bz373955 + * debian/patches/autoconf-regen: rerun autoconf accordingly + * debian/patches/82_prefs.dpatch|series: import default font fixes + from xulrunner 1.8.1.4-1 patchset (thanks to Mike Hommey + ) + * debian/control[.in]: libnss3-dev build-depend is now versioned + (Closes: 429202) + + -- Alexander Sack Mon, 18 Jun 2007 16:50:34 +0200 + +icedove (2.0.0.0-4) unstable; urgency=low + + * One that fix them all release - maybe. + * fix symlinks for chrome/greprefs/defaults in .preinst + (Closes: 425390, 425438, 425476, 425479, 425550, 425552, 425559, 425564, 425672, 425727, 426019) + * debian/control[.in]: fix section -> s/web/mail/ + + -- Alexander Sack Fri, 1 Jun 2007 13:13:13 +0200 + +icedove (2.0.0.0-3) unstable; urgency=low + + * fixing links in preinst (Closes: 424963, 425061, 425223) + greprefs, chrome and defaults need to point to + /usr/share/icedove/* + * drop searchplugin link which even had a typo :) + * debian/icedove.menu: ship debian menu entry + (Closes: 425224) + + -- Alexander Sack Sat, 20 May 2007 16:48:00 +0200 + +icedove (2.0.0.0-2) unstable; urgency=low + + * adding icedove-dbg package + + -- Alexander Sack Sat, 19 May 2007 17:33:00 +0200 + +icedove (2.0.0.0-1) unstable; urgency=low + + * icedovising + * add debian/remove.nonfree + * set upstream application fixed to 'thunderbird' in update-orig, + so you can just drop thunderbird tarball and produce new orig + * fix debian/control.in, drop transition packages. update debian/control + for these modifications. + * no autogen of configure and debian/control for release + + -- Alexander Sack Thu, 17 May 2007 14:00:00 +0200 + +thunderbird (1.99.rc1+2.0-1) feisty; urgency=low + + * branch firefox-trunk package for 2.0 thunderbird package + * debian/control.in, debian/control: add transition packages: + mozilla-thunderbird, mozilla-thunderbird-dev; disable dom-inspector + package as there is nearly no hope that it ever will get maintained + upstream again. + * debian/rules: remove inspector extension from configure; add excludes + to dh_install of thunderbird and thunderbird-dev package: + - + DEB_DH_INSTALL_ARGS_thunderbird := -Xgnome -Ximgicon -Xmozlibthai + DEB_DH_INSTALL_ARGS_thunderbird-dev := -Xnspr -Xnss + + -- Alexander Sack Wed, 18 Apr 2007 13:35:34 +0200 + +icedove (1.5.0.10.dfsg1-3) unstable; urgency=low + + * debian/icedove*.xpm updated to use correct icon + (Closes: 413976, 416476) + * debian/patches/25_gnome_helpers_with_params.dpatch: + Make helper applications with parameters work (bz#273524); + this is an improved version of bugzilla patch by Mike Hommey + + + -- Alexander Sack Wed, 28 Mar 2007 21:55:08 +0200 + +icedove (1.5.0.10.dfsg1-2) unstable; urgency=low + + * debian/tmpls-typeaheadfind/install.rdf: fix version depends of + typeaheadfind (Closes: 413770) + + -- Alexander Sack Wed, 7 Mar 2007 13:13:13 +0100 + +icedove (1.5.0.10.dfsg1-1) unstable; urgency=low + + * new upstream release fixing security issues: + - CVE-2007-0008, MFSA 2006-06: SSLv2 Client Integer Underflow + Vulnerability + - CVE-2007-0009, MFSA 2006-06: SSLv2 Server Stack Overflow + Vulnerability + - CVE-2007-0775, CVE-2007-0776, CVE-2007-0777, MFSA 2007-01: + Crashes with evidence of memory corruption + * 91_credits_icedove.dpatch: dump new xml entities from + credits dialog (Closes: 404984, 412423) + * 50_kbsd_nspr.dpatch, 50_kbsd.dpatch: adapt kbsd patches to apply to + latest upstream code-base + + [ Christian Perrier ] + + * Rewrite debconf templates to fit the current Developer's Reference + recommendations + * Correct the name of the debconf templates file in debian/po/POTFILES.in + Closes: #407220 + * Debconf translations: + - Bulgarian added. Closes: #410627 + - Basque updated. Closes: #410633 + - German updated. Closes: #410672 + - Catalan updated. Closes: #410676 + - Spanish updated. Closes: #410709 + - Galician updated. Closes: #410720, #407944 + - Japanese updated. Closes: #410753 + - Tamil added. Closes: #410892 + - Portuguese updated. Closes: #409562 + - Vietnamese updated. + - Malayalam added. Closes: #408109 + - Russian updated. Closes: #411064, #405741 + - Swedish. Closes: #410632 + - Polish. Closes: #411302 + - Fix typo in Italian translation. Closes: #363806 + - Romanian. Closes: #411361 + - Czech. Closes: #411409 + - Danish. Closes: #411402 + - Dutch. Closes: #411406 + - Italian. Closes: #411452 + - Brazilian Portuguese. Closes: #411538 + - Korean. Closes: #411624, #411581 + - Malayalam. Closes: #411647 + - Finnish. Closes: #411765 + + -- Alexander Sack Fri, 23 Feb 2007 09:00:00 +0100 + +icedove (1.5.0.10.dfsg1-1.1) unstable; urgency=low + + * Non-maintainer upload to fix pending l10n issues. + * Debconf translations: + - Italian fixed. Closes: #363806 + - Russian added. Closes: #405741 + - Galician added. Closes: #407944 + - Malayalam added. Closes: #408109 + - Portuguese updated. Closes: #409562 + + -- Christian Perrier Tue, 6 Feb 2007 06:55:08 +0100 + +icedove (1.5.0.9.dfsg1-1) unstable; urgency=high + + * new upstream version, fixes various security issues: + - CVE-2006-6497 mfsa2006-68 layout engine + - CVE-2006-6498 mfsa2006-68 javascript engine + - CVE-2006-6499 mfsa2006-68 floating point + - CVE-2006-6500 mfsa2006-69 + - CVE-2006-6501 mfsa2006-70 + - CVE-2006-6502 mfsa2006-71 + - CVE-2006-6503 mfsa2006-72 + - CVE-2006-6504 mfsa2006-73 + - CVE-2006-6505 mfsa2006-74 + - CVE-2006-6506 mfsa2006-75 + - CVE-2006-6507 mfsa2006-76 + * landing icedove artwork contributed by Ricardo Fernández + ; svgs are in debian/branding. xpms and some + pngs are generated with rsvg-convert and convert -> adding + build-depends to librsvg2-bin, imagemagick + * including es.po translation contributed by Felipe Caminos + (Closes: 402928) + * updateing pt_BR.po provided by André Luís Lopes + (Closes: 403827) + * adapting credits dialog and Icedove Motto in 91_credits_icedove.dpatch + * fix bad link in icedove manpage (icedove.sgml) (Closes: 398344) + * rebranding install.rdf of default theme for icedove in + 91_rebranding_theme.dpatch (Closes: 393134) + * adapt README.Debian to new icedove directories and name + * clean old/not-needed files from debian/ directory: + theme.part.defaultclassic, mail-jar.mn, messenger_jar_includes.csv + * disabling patch: 99_bz360409_deb400383, which is applied + upstream now. + + -- Alexander Sack Tue, 19 Dec 2006 12:00:00 +0100 + +icedove (1.5.0.8.dfsg1-1) unstable; urgency=medium + + * removing all currently known non-free and sourceless binaries + from source package by running the script included for + reference in debian/remove.nonfree from the gnuzilla project + (Closes: 400340) + * added upstream approved quickfix for grave bug in + debian/patches/99_bz360409_deb400383.dpatch (Closes: 400383) + * last chance kbsd upload ... reenabling kbsd patch with fix + by Petr Salinger (Closes: 399692) + * remove missed non-free icons from + debian/fhunderbird-branding.tmpl/ : background.png.uu, disk.icns.uu + + -- Alexander Sack Sun, 26 Nov 2006 19:00:00 +0100 + +icedove (1.5.0.8-3) unstable; urgency=low + + * disable kbsd patches in 00list because they appear to break + build on other platforms. In consequence, 399692 and 363865 + will be reopened. Reenable 90_ppc64-build-fix (Closes: 400090) + + -- Alexander Sack Mon, 22 Nov 2006 15:10:00 +0100 + +icedove (1.5.0.8-2) unstable; urgency=low + + * fix mozilla.in for real (for transitional thunderbird link + (Closes: 393123, 398037) + * apply basque debconf translation (eu.po) for real + (Closes: 398468) + * included nl.po provided by Nick Niktaris + renaming as icedove first (Closes: 378360) + * include greek translation in icedove.desktop provided by + Nick Niktaris (Closes: 384359) + * include updated de.po translation provided by + Alwin Meschede (Closes: 399083) + * apply FTBFS on GNU/kFreeBSD porters patch provided by + Petr Salinger (Closes: 399692), + which is claimed to provide a fix for ppc64 ftbfs too + (Closes: 363865) + * remove debug echo from icedove.preinst (Closes: 399723) + + -- Alexander Sack Mon, 21 Nov 2006 19:35:00 +0100 + +icedove (1.5.0.8-1) unstable; urgency=medium + + * new upstream version fixes various security issues + * added transition package: thunderbird-gnome-support + -> icedove-gnome-support as well as thunderbird-dbg + -> icedove-dbg (Closes: 393105) + * fix typo in postinst to fix browser integration scheme + recognition as selected by debconf (Closes: 393765, 398427) + * apply patch by Ted Percival to fix broken + transitional thunderbird symlink (Closes: 393123, 398037) + * apply patch by Andre Lehovich that fixes + icedove package description typos (Closes: 398468) + * add basque debconf translation (eu.po) provided by Piarres + Beobide (Closes: 398719) + * remove non-free rfc files from source tarball (Closes: 395095) + + -- Alexander Sack Wed, 15 Nov 2006 18:00:00 +0100 + +icedove (1.5.0.7-3) unstable; urgency=medium + + * unbrand thunderbird mail -> Icedove Mail/News due + to trademark issues (Closes: 354622) + + -- Alexander Sack Thu, 12 Oct 2006 13:00:00 +0100 + +thunderbird (1.5.0.7-2) unstable; urgency=low + + * go through new upload ... reenable thunderbird-dbg + * increase reference count for fontconfig charset + 91_fontconfig_reference_increment_388739 (Closes: 388739) + + -- Alexander Sack Wed, 27 Sep 2006 02:00:00 +0100 + +thunderbird (1.5.0.7-1) unstable; urgency=high + + * disabled new package to avoid queue new: thunderbird-dbg + * new upstream release fixes security issues: + + MFSA 2006-64 - CVE-2006-4571 + + MFSA 2006-63 - CVE-2006-4570 + + MFSA 2006-62 - CVE-2006-4569 + + MFSA 2006-61 - CVE-2006-4568 + + MFSA 2006-60 - CVE-2006-4340 (related to CVE-2006-4339) + + MFSA 2006-59 - CVE-2006-4253 + + MFSA 2006-58 - CVE-2006-4567 + + MFSA 2006-57 - CVE-2006-4565, CVE-2006-4566 + * disable patch 90_gcc-extern-fix, because it has been pulled in upstream + * disable 91_271815.overthespot.v1.2, because applied upstream + + -- Alexander Sack Fri, 15 Sep 2006 16:00:00 +0100 + +thunderbird (1.5.0.5-2) unstable; urgency=low + + * new package: thunderbird-dbg + + improve configure options + + enable svg + + use debian build options to determine optimization flags + * added build depends on libcairo-dev + + -- Alexander Sack Sat, 12 Aug 2006 15:00:00 +0100 + +thunderbird (1.5.0.5-1) unstable; urgency=high + + * new upstream release fixes various security flaws: + + MFSA 2006-44, CVE-2006-3801 + + MFSA 2006-46, CVE-2006-3113 + + MFSA 2006-47, CVE-2006-3802 + + MFSA 2006-48, CVE-2006-3803 + + MFSA 2006-49, CVE-2006-3804 + + MFSA 2006-50, CVE-2006-3805, CVE-2006-3806 + + MFSA 2006-51, CVE-2006-3807 + + MFSA 2006-52, CVE-2006-3808 + + MFSA 2006-53, CVE-2006-3809 + + MFSA 2006-54, CVE-2006-3810 + + MFSA 2006-55, CVE-2006-3811 + * including patch 91_271815.overthespot.v1.2.dpatch + (Closes: 379936, 363814) + * improve manpage: Document -g, --debug options (Closes: 381096) + * update for ja.po, contributed by Kenshi Muto + (Closes: 379946) + * update for pt.po, contributed by Rui Branco + (Closes: 381444) + * Provide virtual package news-reader (Closes: 363834) + * Apply patch which introduces ReplyToList MessageType. This is + the base to allow extensions that provide ReplyToList button to + get installed. Thanks to Armin Berres + for pointing out this unintrusive patch. (Closes: 381273) + * fix README.Debian for firefox integration as well as example of + global pref.js (firefox.js.tmpl) (Closes: 363723) + * further improvements for README.Debian + * fix gnome integration program path in a hard-coded fashion + in 91_gnome_path_fix.dpatch (Closes: 365610) + + -- Alexander Sack Sat, 12 Aug 2006 15:00:00 +0100 + +thunderbird (1.5.0.4-3) unstable; urgency=critical + + * fixing gcc-4.1 ftbfs (Closes: 377176) + * improved manpage by Bastian Kleineidam + documenting -safe-mode option (Closes: 370254) + * include *no xgot* patch for mips/mipsel contributed by + Thiemo Seufer (Closes: 374882) + + -- Alexander Sack Thu, 13 Jul 2006 15:00:00 +0100 + +thunderbird (1.5.0.4-2) unstable; urgency=critical + + * fix version in install.rdf for inspector and + typeaheafind (Closes: 374382) + * (last one was a new upstream release fixing + various security issues (Closes: 373878, 373553) + * urgency=critical + + -- Alexander Sack Mon, 19 Jun 2006 10:00:00 +0100 + +thunderbird (1.5.0.4-1) unstable; urgency=low + + * new upstream release fixing various security issues: + MFSA 2006-42, CVE-2006-2783: Web site XSS using BOM on UTF-8 pages + MFSA 2006-40, CVE-2006-2781: Double-free on malformed VCard + MFSA 2006-38, CVE-2006-2778: Buffer overflow in crypto.signText() + MFSA 2006-37, CVE-2006-2776: Remote compromise via content-defined + setter on object prototypes + MFSA 2006-35, CVE-2006-2775: Privilege escalation through XUL persist + MFSA 2006-33, CVE-2006-2786: HTTP response smuggling + MFSA 2006-32, CVE-2006-2779, CVE-2006-2780: Fixes for crashes with + potential memory corruption + MFSA 2006-31, CVE-2006-2787: EvalInSandbox escape (Proxy Autoconfig, + Greasemonkey) + * build depends: + + xorg-dev -> libx11-dev, libxt-dev, libxinerama-dev, + libxft-dev, libfreetype6-dev, libxrender-dev + + removed binutils, coreutils and po-debconf + * enable xinerama in debian/rules + * fixed lintian errors: + + do not depend on xorg dev meta package + + debhelper depend is now versioned + + changed package description(s) to not start with 'thunderbird' + + -- Alexander Sack Tue, 23 May 2006 15:00:00 +0100 + +thunderbird (1.5.0.2-3) unstable; urgency=low + + * patch-robbery from firefox package: + + removed old mips and arm patches + + added 50_arch_arm_fix + + added 50_arch_alpha_fix + + added 50_arch_m68k_fix + + added 50_arch_mips_Makefile_fix + + added 50_arch_mips_fix (Closes: 357755) + + added 50_arch_parisc_Makefile_fix + + added 50_arch_parisc_fix + * included install.rdf for default theme in extensions dir + (Closes: 363956) + * removed chrome.d locales.d extensions.d from var/lib/thunderbird + + -- Alexander Sack Tue, 16 May 2006 19:45:00 +0100 + +thunderbird (1.5.0.2-2) unstable; urgency=critical + + * debian/thunderbird.sgml. Greatly improved manpage for thunderbird, + thanks to Sam Morris for contributing this + (Closes: 361069) + * add missing build depend to sharutils to fix ftbfs (Closes: 365539) + * fix gnome-support package removing gnome dependencies from + pure thunderbird package. + * set urgency to critical which I forgot to set properly + for the last upload + + -- Alexander Sack Sat, 29 Apr 2006 14:00:00 +0100 + +thunderbird (1.5.0.2-1) unstable; urgency=low + + * removed enable xprint in order to build after X11R7 transition. + * removed xprint recommends from control file. + * 91_fontsfix_359763.dpatch: fix for 'thunderbird shows text illegibly' + for some encodings. (Closes: 359763) + * myspell is now depends (Closes: 357623) + * (re-)including 10_mips_optimization_patch + * debian/patches/90_ppc64-build-fix.dpatch: patch for + 'FTBFS (ppc64)', thanks to Andreas Jochens + for adding the final patch to the report. (Closes: 361036) + * Thanks to Bastian Kleineidam for + contributing: + * Standards version 3.6.2.1 + * Use debhelper v5 with debian/compat + * Remove unneeded thunderbird.conffiles now that debhelper v5 is used + * Remove CVS directories in debian/ + * Fix debian/changelog syntax errors, and convert to UTF-8 + * Fix bashism in debian/thunderbird.postrm, using 2> instead of &>. + * Add ${misc:Depends} to thunderbird* dependencies, fixing a missing + dependency on debconf + * Move db_input commands from postinst into a separate thunderbird.config + file. + * distinct gnome-support package added. adds a good bunch + of gnome build depends to allow module linking against + gnome libs. + * added new fhunderbird-branding in debian/fhunderbird-branding.tmpl + (Closes: 358198) + * use only one profile directory in configure + (Closes: 358378) + * Various security issues are fixed in this release. Namely: + CVE-2006-1741 CVE-2006-1742 CVE-2006-1737 CVE-2006-1738 + CVE-2006-1739 CVE-2006-1740 CVE-2006-1736 CVE-2006-1735 + CVE-2006-1734 CVE-2006-1733 CVE-2006-1732 CVE-2006-0749 + CVE-2006-1731 CVE-2006-1724 CVE-2006-0884 CVE-2006-1730 + CVE-2006-1729 CVE-2006-1728 CVE-2006-1727 CVE-2006-1045 + CVE-2006-0748 CVE-2006-1726 CVE-2006-1725 CVE-2005-2353 + CVE-2006-1529 CVE-2006-1530 CVE-2006-1531 CVE-2006-1723 + CVE-2006-0292/CVE-2006-0293 (Closes: 349242) + CVE-2006-0294 CVE-2006-0295 CVE-2006-0296 CVE-2006-0297 + CVE-2006-0298 CVE-2006-0299 + + -- Alexander Sack Thu, 20 Mar 2006 21:00:00 +0100 + +thunderbird (1.5-4) unstable; urgency=low + + * great package renaming release: mozilla-thunderbird -> thunderbird + * removed not maintained and not needed update-mozilla-thunderbird + facilities. Extensions/locales etc. don't need to call this anymore + in order to install themselves globally. + * added -fno-strict-aliasing -fno-unsigned-char as parameters to build + * patch: 10_visibility_hidden_patch.dpatch - by Adam Conrad + * new upstream version fixes various bugs + (Closes: 288601, 291912, 295662) + * included new fr.po translation by Mohammed Adnène Trojette + (Closes: 323367) + * included new cs.po translation by Jan Outrata + (Closes: 321736, 335354) + * included new pt.po translation by Traduz! + (Closes: 348440) + * included new da.po translation by Claus Hindsgaul + (Closes: 350687) + * added intl.locale.matchOS, true to debian/global-config.js instead + of hacking startup script + + -- Alexander Sack Tue, 28 Feb 2006 15:00:00 +0100 + +mozilla-thunderbird (1.5-2) experimental; urgency=low + + * reenable patch 20_mailnews_mime_makefile_in.dpatch + to export proper headers to -dev package for enigmail + * last upload with old package name + + -- Alexander Sack Thu, 12 Jan 2006 15:00:00 +0100 + +mozilla-thunderbird (1.5-1) experimental; urgency=low + + * experimental upload of 1.5 (Closes: 348007) + * major package housekeeping + + removed extension template pieces + + bye -offline extension release - this is now completely + integrated in thunderbird default install + + disable all patches ... but those that are obviously + needed - please shout if you got struck by a regression + due to this :). + + use upstream startup script in the hope that they + did fix it! + + branding removed again. Keep it white labeled - for + now. + + -- Alexander Sack Thu, 12 Jan 2006 15:00:00 +0100 + +mozilla-thunderbird (1.0.7-3) unstable; urgency=high + + * apply backported patch for amd64 (Closes: 332481,332484) + Thanks to Martin Sarsale + for testing and preparing the patch + + debian/patches/91_gcc4_imgLoader.fix.dpatch + * updated vietnam translation contributed by Clytie Siddall + (Closes: 324224) + * added swedish translation contributed by Daniel Nylander + (Closes: 331606) + + -- Alexander Sack Mon, 17 Oct 2005 23:30:00 +0100 + +mozilla-thunderbird (1.0.7-2) unstable; urgency=high + + * still high to indicate that security bugs have not been + fixed in etch. + * apply debian/patches/90_xptcinvoke_arm.dpatch to fix ftbfs on + arm/sid + + -- Alexander Sack Mon, 10 Oct 2005 19:00:00 +0100 + +mozilla-thunderbird (1.0.7-1) unstable; urgency=high + * MFSA-2005-57: IDN heap overrun + Summary: Tom Ferris reported a Firefox crash when processing a domain + name consisting solely of soft-hyphen characters. + Closes: - + CVE-Ids: CAN-2005-2871 + Bugzilla: 307259 + Issues addressed: + + CAN-2005-2871 - IDN heap overrun + * MFSA-2005-58: Accumulated vendor advisory for multiple vulnerabilities + Summary: Fixes for multiple vulnerabilities with an overall severity + of "critical" have been released in Mozilla Firefox 1.0.7 and + the Mozilla Suite 1.7.12 + Closes: - + CVE-Ids: CAN-2005-2701 CAN-2005-2702 CAN-2005-2703 CAN-2005-2704 + CAN-2005-2705 CAN-2005-2706 CAN-2005-2707 + Bugzilla: 300936 296134 297078 302263 299518 303213 304754 306261 + 306804 291178 300853 301180 302100 + Issues addressed: + + CAN-2005-2701 - Heap overrun in XBM image processing + + CAN-2005-2702 - Crash on "zero-width non-joiner" sequence + + CAN-2005-2703 - XMLHttpRequest header spoofing + + CAN-2005-2704 - Object spoofing using XBL + + CAN-2005-2705 - JavaScript integer overflow + + CAN-2005-2706 - Privilege escalation using about: scheme + + CAN-2005-2707 - Chrome window spoofing + + Regression fixes + * MFSA-2005-59: Command-line handling on Linux allows shell execution + -> was addressed in 1.0.6-4 already. Reverting upstream changes + to mozilla/mail/mozilla.in by copying debian/mozilla.in_1.0.6 over + to allow our patches to still apply. debian/patches/01_old_mozilla.in.dpatch + + -- Alexander Sack Sat, 1 Oct 2005 17:00:00 +0100 + +mozilla-thunderbird (1.0.6-4) unstable; urgency=high + + * now using bash to overcome possible security flaws of + our thunderbird start script (mozilla-thunderbird). Patch + by Florian Weimer + debian/mfsa_2005-59.debian.patch (Closes: 329664, 329667) + * added patch 50_ftbfs_alpha+arm+ia64_325536_fix.dpatch + to build on alpha, arm, and ia64 that now uses + __attribute__((used)) instead of ((unused)) by + Steve Langasek + (Closes: 325536) + * fix debsums error reported by Y Giridhar Appaji Nag + . Now removing files in postrm. + Further moved /usr/lib/mozilla-thunderbird/chrome/chrome.rdf + to the /var/... adding a link to the new location. + (Closes: 292475) + * added depends for system libs: mng, png, jpeg to not build with + unmaintained image included libs. + * modified 21_mozilla_in-patch.dpatch to recognize -mail as a -compose + alias. This makes thunderbird work well with current gnome default + mailto: command for thunderbird. Thanks to Sam Morris + for the workaround patch (Closes: 330168) + * still work left: fix window.open(); overlay problem. + added rejar-chrome.sh util script below debian. It + rejars .jar files by extracting paths given in + _jar_includes.csv from the .jar zip file + and zipping only those files to a new jar file again. Anyway, still + broken, thus disabled for this build. + (See: 306522) + + -- Alexander Sack Mon, 23 Sep 2005 17:00:00 +0100 + +mozilla-thunderbird (1.0.6-3) unstable; urgency=low + + * remove gcc-3.4 from amd64 build ... this time for sure + (Closes: 320723) + * remove special optimization flags for other archs too + + -- Alexander Sack Mon, 2 Aug 2005 17:00:00 +0100 + +mozilla-thunderbird (1.0.6-2) unstable; urgency=low + + * remove gcc-3.4 from amd64 build (Closes: 320723) + * added arabic po translation by Mohammed Adnène Trojette + (Closes: 320771) + + -- Alexander Sack Mon, 1 Aug 2005 17:00:00 +0100 + +mozilla-thunderbird (1.0.6-1) unstable; urgency=high + + * GCC/G++ 4.0 API transition upload. + * include 90_new_freetype_fix.dpatch to fix new freetype API + (Closes: 301481, 301481) - consumed from mozilla-firefox packages ... + thx to Eric Dorland + * include 90_gcc4_fix.dpatch + * fixes multiple security bugs (Closes: 318728) + CAN-2005-2270: Code execution through shared function objects + CAN-2005-2269: XHTML node spoofing + CAN-2005-2266: Same origin violation: frame calling top.focus() + CAN-2005-2265: Possible exploitable crash in InstallVersion.compareTo() + CAN-2005-2261: XML scripts ran even when Javascript disabled + CAN-2005-1532: Privilege escalation via non-DOM property overrides + CAN-2005-1160: Privilege escalation via DOM property overrides + CAN-2005-1159: Missing Install object instance checks + CAN-2005-0989: Javascript "lambda" replace exposes memory contents + * fix gdk_property_get problem that might cause a segfault (Closes: 317937) + patch by Loic Minier + debian/patches/gdk_property_get.dpatch + * fix CAN-2005-2353: insecure tmp file usage in run-mozilla.sh (Closes: 306893) + debian/patches/20_run-mozilla_sh_306893_fix.dpatch + * include german de.po translation (Closes: 318747) + by Alwin Meschede + * fixed whitespace in mozilla-thunderbird.templates (Closes: 308961) + hint by Clytie Siddall + * apply fix for seamonkey migration crash (Closes: 285728) + 90_mail_components_miration_src_nsSeamonkeyProfileMigrator_cpp + * fix 'find' in update-mozilla-thunderbird-chrome (Closes: 315588) + patch by Michael Spang + + -- Alexander Sack Thu, 21 Jul 2005 21:00:00 +0100 + +mozilla-thunderbird (1.0.2-3) unstable; urgency=high + + * last maybe sarge upload with urgency high, contains only + translations (po files + gnome .desktop file lines) + + cs translation by Jan Outrata + (Closes: 309023) + + fi translation by Matti Pöllä + (Closes: 303805) + + ja translation by Kenshi Muto + (Closes: 307005) + + pt_BR translation by Andre Luis Lopes + (Closes: 304261) + + vi translation by Clytie Siddall + (Closes: 308959) + + added missed translation entries in gnome .desktop files + for it, ko, pl + + -- Alexander Sack Thu, 02 Jun 2005 22:00:00 +0100 + +mozilla-thunderbird (1.0.2-2) unstable; urgency=low + + * fixed TYPO in 71_extensionManagerAutoReRegister.dpatch, + probably causing #302218 (Closes: 302218) + * extended patch 71_extensionManagerAutoReRegister.dpatch, + now checking components.ini timestamp instead of + compreg.dat timestamp. removing components.ini compreg.dat + and XUL.mfasl if global Extensions.rdf file is newer then + components.ini. Probably helping to fix #302218 too. + * renamed xprt-xprintorg recommends to xprint (Closes: 300975) + * (re-)enabled pref extension (Closes: 302130) + + -- Alexander Sack Thu, 31 Mar 2005 07:00:00 +0100 + +mozilla-thunderbird (1.0.2-1) unstable; urgency=medium + * new upstream version (Closes: 301542) fixes some + security issues according to upstream + (http://www.mozilla.org/projects/security/known-vulnerabilities.html) + 1.0.2 fixes the following security related issues. + + MFSA 2005-30 GIF heap overflow parsing Netscape extension 2 + MFSA 2005-25 Image drag and drop executable spoofing + MFSA 2005-21 Overwrite arbitrary files downloading .lnk twice + MFSA 2005-18 Memory overwrite in string library + MFSA 2005-17 Install source spoofing with user:pass@host + MFSA 2005-15 Heap overflow possible in UTF8 to Unicode conversion + + -- Alexander Sack Sun, 27 Mar 2005 16:00:00 +0100 + +mozilla-thunderbird (1.0-4) unstable; urgency=low + + * removed not needed build-deps: csh + * included debconf (and gnome .desktop file) translations for + various languages: (Closes: 292072, 294622, 291477, 292507) + + debian/po/fr.po (Mohammed Adnène TROJETTE , + Aurelien Jarno ) + + debian/po/nl.po (Luk Claes ) + + debian/po/ca.po (Jordi Mallach ) + + debian/po/ko.po (Yooseong Yang ) + + debian/po/it.po (Vittorio Palmisano ) + + debian/po/pl.po (Robert Luberda ) + * fixed startscript problem + - updated 21_mozilla_in-patch.dpatch - thanks to + Kevin B. McCarty + * moved code of component debCleanComp.js to + nsExtensionManager, so it can automatically restart the + application if needed. + This should again lower the probabilty that + some upgrade, downgrade of thunderbird or extensions + breaks the chrome or component registry in your profile + dir. + + -- Alexander Sack Sun, 13 Mar 2005 13:00:00 +0100 + +mozilla-thunderbird (1.0-3) unstable; urgency=low + + * first upload to official archive for tbird 1.0 + (first since 0.9-6) + * finally I decided to upload this package to unstable, + though there is a debian-legal discussion going on + about the mozilla trademark. Since it might take some + time until a solution is found, I decided to upload + as usual. + * started to debrand the app to 'Debian Thunderbird' + + -- Alexander Sack Sun, 16 Jan 2005 14:00:00 +0100 + +mozilla-thunderbird (1.0-2) unstable; urgency=low + + * Uninstall file and dummy-empty-file must not be empty + * Included latest patch for extension manager + * Included Jaap Haitsma icons (Closes: 257640) + * fixed regression compared to 0.9-6 official package + that had problems to build because empty files where + not included in diff.gz + + -- Alexander Sack Fri, 10 Dec 2004 23:00:00 +0100 + +mozilla-thunderbird (1.0-1) unstable; urgency=low + + * new upstream release - 1.0 (Closes: 284560) + * includes new icons as default theme + * changed start.html page to not use the mozilla partical + in the package naming. This app is now officially called + 'Debian Thunderbird' + * removed -O from sparch arch (See: 284532) + * README.Debian improved + * adapted new manpage inspired by Ralf Katz + + -- Alexander Sack Tue, 08 Dec 2004 12:00:00 +0100 + +mozilla-thunderbird (0.9-7) unstable; urgency=low + + * added debconf capability to define what browser + integration is wanted + -> added /etc/mozilla-thunderbird/auto-config.js + to store automatically generated configs by debconf + + -- Alexander Sack Thu, 24 Nov 2004 12:00:00 +0100 + +mozilla-thunderbird (0.9-6) unstable; urgency=low + + * fixed bug in preinst script by strictly testing + the existance of files before invoking mv + operations (Closes: 282186) + * fixed stupid upgrade bug in preinst script. + ls uses now -d to produce no garbage when + used as source for moving. This closes + a bug reported against enigmail, but is a + bug of the thunderbird package. This release + fixes it (Closes: 282505) + * still missing reply for current grave bug + 282506. I think this is due to the initial + upgrade problems. Those problem should not + occur anymore with the fixes of this packages + upgrade mechanism (Closes: 282506) + + -- Alexander Sack Thu, 24 Nov 2004 12:00:00 +0100 + +mozilla-thunderbird (0.9-5) unstable; urgency=low + + * added patch by Kevin B. McCarty + adds In-Reply-To mailto: link capability (Closes: 268055) + * late verification of bug fixed by preview package: + fixes: message editor steals keyboard focus (Closes: 274313) + + -- Alexander Sack Thu, 18 Nov 2004 12:00:00 +0100 + +mozilla-thunderbird (0.9-4) unstable; urgency=low + + * fixed upgrade bug - when /usr/lib/mozilla-thunderbird/extensions + is a link, remove it and create a directory for it! After that + move all extensions from /var/lib/mozilla-thunderbird/extensions + to the new folder. + * added example firefox-config.js.tmpl to use the new wrapper + script. This config should only be used if you are in a non + gconf capable window environment, e.g. pure openbox, etc. + See the README.Debian for further details on howto integrate + thunderbird properly. + * added uninstall and extension directory for default theme + extension. This should make it possible to remove the package + cleanly. + * Bug#280254: mozilla-thunderbird: Please package + thunderbird 0.9 (Closes: 280076) + * patch by Kevin McCarty , fixes + Subject munging if thunderbird is running (Closes: 263971) + * fixed: typo in welcome message for preview pane (Closes: 278690) + * thx to bug submitters that verified the fix of the following + bugs in my preview package at people.debian.org: + + Bug#277304: mozilla-thunderbird: thunderbird dies silently on + some mails (Closes: 277304) + + no sound when new mail arrives (Closes: 274044) + + Focus Problem when a filter is selected (Closes: 272157) + + "Get Mail" button fails intermittently on additional accounts + (Closes: 280482) + * added patch to fix /tmp/ file permissions during processing of + imap directory (Closes: 280363) + * cleaning up compreg.dat on Extensions.rdf change, so after + restart all troubles with this issue are gone (Closes: 273213) + * Already since 0.9-1, but I forgot to mention: + + set default smtp server option should work now + (Closes: 274177) + + with view filter: unread on, newly read messages are + not removed from the message list anymore (Closes: 275708) + * other bugs resolved by upstream: + + problems while threads refresh (Closes: 239203) + + Shortcuts conflict with ISO 14755 (Closes: 246916) + + -- Alexander Sack Mon, 15 Nov 2004 22:45:00 +0100 + +mozilla-thunderbird (0.9-3) unstable; urgency=low + + * rm -f /usr/lib/mozilla-thunderbird/extensions + in postinst if it is a link! After that move + stuff from /var/lib/mozilla-thunderbird/extensions + to /usr/lib/mozilla-thunderbird/extensions. + The rest will be done by update-mozilla-thunderbird-chrome + + -- Alexander Sack Thu, 11 Nov 2004 22:45:00 +0100 + +mozilla-thunderbird (0.9-2) unstable; urgency=low + + * fixed bad bug in mozilla-thunderbird.install, + that removed the fulls extensions dir + * fixed broken upgrade problem due to + mozilla-thunderbird-inspector that tried to + install resource files under /usr/lib/.../res, + but that is a link. Now storing under /usr/share/ + + -- Alexander Sack Wed, 10 Nov 2004 22:00:00 +0100 + +mozilla-thunderbird (0.9-1) unstable; urgency=low + + * new upstream version (0.9) + * include patch amd64: + by Frederik Schueler + -> use gcc-3.4,g++3.4 (Closes: 261365) + * pasting issues partially fixed (See: 279656) + * Local Folders needed, cannot be deleted anymore + (Closes: 226253) + * including great patch of Mike Hommey + who brought the final fix for the extension manager + problems; changed update-mozilla-thunderbird-chrome + according to the new -register capability + + -- Alexander Sack Wed, 10 Nov 2004 20:00:00 +0100 + +mozilla-thunderbird (0.8-3) unstable; urgency=medium + + * respin for new binutils version (Closes: 273354) + * removing essential and build-essential build + dependencies to: base-files, libc6-dev + * update-mozilla-thunderbird-chrome: output of find(s) + to /dev/null (Closes: 267661) + * included mozilla-thunderbird-compose script in docs + section + + -- Alexander Sack Sat, 26 Sep 2004 13:00:00 +0100 + +mozilla-thunderbird (0.8-2) unstable; urgency=medium + + * include good build_id during build fixes + upgrade problems + (Closes: 272175, 272182) + * fixed some startup-script regressions. Remote + commands are almost ready by upstream. Only + -compose argument is interpreted in a debian + specific way. Of course, locale settings + are still debian specific too. + * improved changelog to list important notes + for upgrading to 0.8 + * 10_mips_optimization_patch.dpatch: + thiemo seufers mips(el) workaround + removing CFLAGS="$CFLAGS -Wa,-xgot" and + CXXFLAGS="$CXXFLAGS -Wa,-xgot" and adding + inline when DEBUG is true (Closes: 272162). + + -- Alexander Sack Sat, 18 Sep 2004 21:00:00 +0100 + +mozilla-thunderbird (0.8-1) unstable; urgency=medium + + * new upstream version 0.8 + * fixes various security issues in sarge and sid + (Closes: 263752) + * hacked a tiny patch for nsExtensionManager.js.in bug that + lets thunderbird (and firefox) loop on startup if + launched with non-root account. + + -- Alexander Sack Fri, 17 Sep 2004 10:00:00 +0100 + +mozilla-thunderbird (0.7.3-6) unstable; urgency=high + + * still fixes the security bug in sarge (see #263752) + ... thus urgency=high + * applied 50_mozilla-thunderbird-xpcom-xptcall-mips.dpatch + provided by Thiemo Seufer + (Closes: 267017) + * removed as Uploader as he expressed + that he has no more time to co-maintaining this package. + Thanks for your work! + + -- Alexander Sack Sun, 12 Sep 2004 17:30:00 +0100 + +mozilla-thunderbird (0.7.3-5) unstable; urgency=high + + * ping tbird to find a running instance instead of searching + for lock file that could still be there after a crash (redone) + (Closes: 267144) + * still fixes the security bug in sarge ... thus urgency=high + + -- Alexander Sack Thu, 21 Aug 2004 14:00:00 +0100 + +mozilla-thunderbird (0.7.3-4) unstable; urgency=high + + * ping tbird to find a running instance instead of searching + for lock file that could still be there after a crash + (Closes: 267144) + * still fixes the security bug in sarge ... thus urgency=high + + -- Alexander Sack Thu, 21 Aug 2004 14:00:00 +0100 + +mozilla-thunderbird (0.7.3-3) unstable; urgency=high + + * extended patch for mips: 50_xpcom_xptcall_xptcstubs_asm_mips_s + (Closes: 266851) + * still fixes the security bug in sarge ... thus urgency=high + + -- Alexander Sack Thu, 19 Aug 2004 17:00:00 +0100 + +mozilla-thunderbird (0.7.3-2) unstable; urgency=high + + * included patch for mips: 50_xpcom_xptcall_xptcstubs_asm_mips_s + * made global-config.js more up to date (Closes: 261815) + * recommend myspell-en-us | myspell-dictionary (Closes: 265272) + * enigmail is now suggested and not recommended anymore + * still fixes the security bug in sarge ... thus urgency=high + + -- Alexander Sack Wed, 18 Aug 2004 16:00:00 +0100 + +mozilla-thunderbird (0.7.3-1) unstable; urgency=high + + * new upstream release 0.7.3 - fixes security issues + (Closes: 263752) + * changed maintainer email to debian address + * removing /var/lib/mozilla-thunderbird dir on purge + (Closes: 260212). + * reverting gcc-3.2 and g++-3.2 for hppa architecture to back to + default gcc/g++ compiler + * fixed package description of mozilla-thunderbird-inspector and + mozilla-thunderbird-offline (Closes: 260374, 260376) + * plain mozilla-thunderbird now opens Inbox window to front + instead of profile manager when already running (Closes: 259476) + + -- Alexander Sack Wed, 04 Aug 2004 20:00:00 +0100 + +mozilla-thunderbird (0.7.1-3) unstable; urgency=low + + * updated README.Debian to be more specific + on the lost profile workaround! + * added 10_profile_migration.dpatch to fix + profile migration issues (Closes: 258741, 258747) + * updated .desktop file Comment (Closes: 257596) + * trying gcc-3.2 and g++-3.2 for hppa architecture + + -- Alexander Sack Tue, 13 Jul 2004 11:00:00 +0100 + +mozilla-thunderbird (0.7.1-2) unstable; urgency=low + + * added 10_profile_migration.dpatch to fix + profile migration issues (Closes: 258741, 258747) + * updated .desktop file Comment (Closes: 257596) + * trying gcc-3.2 and g++-3.2 for alpha and amd64 + architecture + + -- Alexander Sack Mon, 12 Jul 2004 11:00:00 +0100 + +mozilla-thunderbird (0.7.1-1) unstable; urgency=low + + * new upstream source 0.7.1 (Closes: 257320, 256843) + * fixed broken theme ID + * include extension descriptions and set them + to locked + * fixed typo in branding patch ( Hompage ->Homepage ) + * included movemail for handling local mail (Closes: 219893) + * provides new mozilla-thunderbird-dev + * does not build enigmail anymore. enigmail has got its + own source package for now. Hopefully this package will + build soon against mozilla-mailnews and mozilla-thunderbird, + so only one package is needed for both. + * update-mozilla-thunderbird-chrome: LD_LIBRARY_PATH bug fixed + (Closes: 254144) + * verified that -compose mailto:email@host.com works (Closes: 252261) + * include upgrade info in README.debian. Documented + new global-config.js file in README.debian too (Closes: 253315) + * crash on corrupt bmp fixed by upstream (Closes: 248857) + * added Provides: mail-reader, imap-client (Closes: 257199) + * renamed menu entry to 'Thunderbird Mail' (Closes: 257596) + + -- Alexander Sack Mon, 5 Jul 2004 11:00:00 +0100 + +mozilla-thunderbird (0.7.1-0.0.asac1) unstable; urgency=low + + * new upstream source 0.7.1 + * fixed broken theme ID + * include extension descriptions and set them + to locked + * fixed typo in branding patch ( Hompage ->Homepage ) + * included movemail for handling local mail + + -- Alexander Sack Thu, 1 Jul 2004 11:00:00 +0100 + +mozilla-thunderbird (0.7-0.0.asac1) unstable; urgency=low + + * new upstream source 0.7 + * provides new mozilla-thunderbird-dev + * does not build enigmail anymore. enigmail has got its + own source package for now. Hopefully this package will + build soon against mozilla-mailnews and mozilla-thunderbird, + so only one package is needed for both. + * update-mozilla-thunderbird-chrome: LD_LIBRARY_PATH bug fixed + (Closes: 254144) + * verified that -compose mailto:email@host.com works (Closes: 252261) + * include upgrade info in README.debian (Closes: 253315) + * crash on corrupt bmp fixed by upstream (Closes: 248857) + + -- Alexander Sack Wed, 23 Jun 2004 11:00:00 +0100 + +mozilla-thunderbird (0.6-asac1) unstable; urgency=low + + * new binary package for development files + mozilla-thunderbird-dev + * mozilla-thunderbird now Provides: mail-reader and imap-client + + -- Alexander Sack Tue, 08 Jun 2004 15:00:00 +0100 + +mozilla-thunderbird (0.6-3) unstable; urgency=low + + * added libx11-dev, libxp-dev, libxt-dev to Build-Depends + * removed xlibs-dev from Build-Depends + * fixed typo in starting screen (Closes: 249850) + * removed duplicate readme file (Closes: 247162) + * added readme file upgrade note to remove the + chrome.rdf in the users profile directory after + upgrade. + + -- Alexander Sack Thu, 03 Jun 2004 00:20:00 +0100 + +mozilla-thunderbird (0.6-2) unstable; urgency=low + + * Fix missing build-dep on xlibs-dev, causing FTBFS errors + (closes: Bug#251166) + + -- Soeren Boll Overgaard Fri, 28 May 2004 11:02:07 +0000 + +mozilla-thunderbird (0.6-1) unstable; urgency=low + * accumulated changelog: 0.6-0.1rc1 + 0.6-0.1rc2 + * repackaged upstream source tarball to not-include + non-free icons of the trademarked new branding + * changed menu icon size to 32x32 + * added suggestions for mozilla-thunderbird-typeaheadfind + mozilla-thunderbird-offline and mozilla-thunderbird-inspector + * new upstream version: 0.6 + * MAP users can now benefit from support for the IMAP IDLE command + which allows the mail server to push notifications such as new + mail arriving as soon as it arrives (Closes: 232544) + * Thunderbird supports server wide news filters that apply to all + news groups on a server + * Mail filters can now mark messages as junk + * Offline support is now available as an extension package + (Closes: 231920) + * Command line parsing problems fixed (Closes: 232342) + * Find broken in view source is fixed (Closes: 232580) + * Alerts and crash when deleting multiple nested + folders inside the trash folder is fixed (Closes: 237705, 244414) + * shift-c selects all as read (Closes: 245039) + * menu hint changed to mail (Closes: 246211) + * Alt-A selects all messages (Closes: 229518) + * typeahead find extension added as extra package + (Closes: 232562) + * suggesting mozilla-firefox now (Closes: 240708, 234918) + * changed mozilla-thunderbird.xpm to envelope with flames + (Closes: 243028) + * new enigmail upstream version included (0.86.6), + (Closes: 235553) + * now bulding with -O2 on all platforms, but ia64, arm, + sparc, alpha, powerpc + * global enigmail config file now in + /etc/mozilla-thunderbird/pref/enigmail.js + * new binary targets: + mozilla-thunderbird-inspector, + mozilla-thunderbird-offline, + mozilla-thunderbird-typeaheadfind + * restructured conffiles: now a single global config + file exists: /etc/mozilla-thunderbird/global-config.js, + which may be used by admins to make their + preconfigurations. + Old config files in /etc/mozilla-thunderbird/pref + will be reserved till next --purge + + -- Alexander Sack Sat, 08 May 2004 08:45:00 +0100 + +mozilla-thunderbird (0.5+.040427-1) unstable; urgency=low + + * new snapshot of 040427 + * added build depend: libgnomevfs2-dev + * increased debian policy standard version to 3.6.1 + + -- Alexander Sack Tue, 27 Apr 2004 12:45:00 +0100 + +mozilla-thunderbird (0.5+.040418-1) unstable; urgency=low + + * new snapshot of 040418 + * changed desktop icon to envelope with flames (Closes: 243028) + + -- Alexander Sack Sun, 18 Apr 2004 12:45:00 +0100 + +mozilla-thunderbird (0.5+.040412-1) unstable; urgency=low + + * new snapshot of 040412 + * Updated enigmail to 0.83.6 + + -- Alexander Sack Mon, 12 Apr 2004 01:37:00 +0100 + +mozilla-thunderbird (0.5+.040330-1) unstable; urgency=low + + * new snapshot of 040320 + * Updated enigmail to 0.83.5 (Closes: 235553) + + -- Alexander Sack Tue, 30 Mar 2004 17:30:20 +0100 + +mozilla-thunderbird (0.5-4) unstable; urgency=low + + * reenabled hppa patch, which apparently led to FTBFS on hppa + + -- Alexander Sack Thu, 04 Mar 2004 21:30:20 +0100 + +mozilla-thunderbird (0.5-3) unstable; urgency=medium + + * preinst added to allow clean upgrade path to this + (Closes: 234118, Closes: 234267) + * added prerm script to allow a clean remove of package + + -- Alexander Sack Sun, 29 Feb 2004 10:30:20 +0100 + +mozilla-thunderbird (0.5-2) unstable; urgency=low + + * new source package layout!! Now using orig.tar.gz with diff.gz + (Closes: 232055) + * moved arch-indep chrome stuff to /usr/share/mozilla-thunderbird/chrome + * moved images to /usr/share/mozilla-thunderbird/res + /usr/share/mozilla-thunderbird/icons + /usr/share/mozilla-thunderbird/chrome/icons + + -- Alexander Sack Thu, 19 Feb 2004 19:30:20 +0100 + +mozilla-thunderbird (0.5-1.1) unstable; urgency=low + + * new source package layout!! Now using orig.tar.gz with diff.gz + + -- Alexander Sack Mon, 11 Feb 2003 19:30:20 +0100 + +mozilla-thunderbird (0.5-1) unstable; urgency=low + + * Aggregated changes since 0.4-1: + * new upstream release 0.5 included + * added xprt-xprintorg to Recommends (Closes: 226626) + * upgraded enigmail to 0.83.2 (Closes: 228678) + + includes a workaround for mozilla bug + leading to a crash in rare situations + (fixed in 0.82.6) + * improved package structure. Sources now are included as original archives + & are extracted to build-dir. (Closes: 225033) + * Minor wording changes in package description, pointed out by + Mark Stevenson. + * New debianization of appearance (branding) + * added switches for pref.js config entries for + individual doubleclick timeout & drag threshold + settings in gtk2 (Closes: 229146) + + -- Alexander Sack Mon, 09 Feb 2003 19:30:20 +0100 + +mozilla-thunderbird (0.5-0.1) unstable; urgency=low + + * preview of thunderbird-0.5 rc2 + + -- Alexander Sack Mon, 07 Feb 2003 19:30:20 +0100 + +mozilla-thunderbird (0.4-1.6) unstable; urgency=low + + * added basic gtk settings as mozilla prefs: + + widget.gtk2.dnd.threshold - treshold in pixel before a drag starts + + widget.gtk2.double_click_timeout - + maximum time in milliseconds between two clicks + to become recognized as double-click e.g. to get + rid of unexpected folder moves, etc. + * upgraded enigmail to 0.83.2 + + -- Alexander Sack Mon, 05 Feb 2003 10:30:20 +0100 + +mozilla-thunderbird (0.4-1.5) unstable; urgency=low + + * added xprt-xprintorg to Recommends + * upgraded enigmail to 0.83.1 + + -- Alexander Sack Mon, 04 Feb 2003 10:30:20 +0100 + +mozilla-thunderbird (0.4-1.4) unstable; urgency=low + + * improved package structure. Sources now are included as original archives + & are extracted to build-dir. (Closes: 225033) + * late checkin. Already uploaded to mentors + + -- Alexander Sack Mon, 27 Jan 2003 10:30:20 +0100 + +mozilla-thunderbird (0.4-1.31) unstable; urgency=low + + * Minor wording changes in package description, pointed out by + Mark Stevenson. + + -- Soeren Boll Overgaard Wed, 14 Jan 2004 12:46:23 +0000 + +mozilla-thunderbird (0.4-1.3) unstable; urgency=low + + * further debinized branding. updated 10_debian-branding patch + * do not use MOZILLA_FIVE_HOME. Always set the MOZILLA_FIVE_HOME + correctly. -> This is not anymore mozilla suite, so it is obsolete. + + -- Alexander Sack Mon, 06 Jan 2003 10:30:20 +0100 + +mozilla-thunderbird (0.4-1.2) unstable; urgency=low + + * updated enigmail to 0.82.6 - includes a workaround for mozilla bug + leading to a crash. + + -- Alexander Sack Mon, 30 Dec 2003 20:30:20 +0100 + +mozilla-thunderbird (0.4-1.1) unstable; urgency=low + + * switched to .orig.tgz file approach + + -- Alexander Sack Mon, 12 Dec 2003 00:30:20 +0100 + +mozilla-thunderbird (0.4-1) unstable; urgency=low + + * version for first debian official upload of 0.4 + + -- Alexander Sack Mon, 12 Dec 2003 00:30:20 +0100 + +mozilla-thunderbird (0.4-0.3) unstable; urgency=low + + * updated latest enigmail source to version 0.82.5 + + -- Alexander Sack Mon, 12 Dec 2003 00:30:20 +0100 + +mozilla-thunderbird (0.4-0.2) unstable; urgency=low + + * added locale support: default locale is en-US + + -- Alexander Sack Mon, 12 Dec 2003 00:30:20 +0100 + +mozilla-thunderbird (0.4-0.1) unstable; urgency=low + + * upgraded official 0.4 release + * browser integration works on gnome/kde + * new mozilla-theme + * latest engimail included + + -- Alexander Sack Mon, 10 Nov 2003 00:30:20 +0100 + +mozilla-thunderbird (0.3-7) unstable; urgency=low + + * added patches for hppa & alpha, arm & mips specfic stuff. took the patches from + the debian mozilla package + + -- Alexander Sack Mon, 10 Nov 2003 00:30:20 +0100 + +mozilla-thunderbird (0.3-6) unstable; urgency=low + + * added patch to switch from ex to sed which certainly won't + have terminal problems + * added .desktop file for menu integration in gnome, kde, etc. + + -- Alexander Sack Sun, 2 Nov 2003 22:23:40 +0100 + + +mozilla-thunderbird (0.3-5) unstable; urgency=low + + * Alexander Sack: + - added build depend nvi. + * Soeren Boll Overgaard + - added dependency on gnupg for enigmail. + + -- Alexander Sack Thu, 29 Oct 2003 21:00:59 +0200 + +mozilla-thunderbird (0.3-4) unstable; urgency=low + + * Soeren Boll Overgaard: + - Improve wording in long descriptions. + - Fix dependency problem of the enigmail-package. + + -- Soeren Boll Overgaard Tue, 28 Oct 2003 17:08:55 +0100 + +mozilla-thunderbird (0.3-3) unstable; urgency=low + + * Build-depend on m4 + * Actually do something in binary-arch + * asac: Applied Patch for myspell issue (closes: Bug#217555) + * fixed mozilla-thunderbird.sgml according to docbook DTD (closes: Bug#217708) + + -- Soeren Boll Overgaard Sun, 26 Oct 2003 23:24:25 +0100 + +mozilla-thunderbird (0.3-2) unstable; urgency=low + + * Build-depend on dpatch. + + -- Soeren Boll Overgaard Sun, 26 Oct 2003 13:26:31 +0100 + +mozilla-thunderbird (0.3-1) unstable; urgency=low + + * Make my name look right in Uploaders. + * Change version to one suited to Debian. + * Update standards version to 3.6.1 (No changes). + + -- Soeren Boll Overgaard Sun, 26 Oct 2003 09:38:24 +0000 + +mozilla-thunderbird (0.3-0.3) unstable; urgency=low + + * readded forgotten patch hunks + + -- Alexander Sack Thu, 24 Oct 2003 09:00:59 +0200 + +mozilla-thunderbird (0.3-0.2) unstable; urgency=low + + * New upstream release + * latest patches of mozilla-thunderbird-0.2-3 are included + + -- Alexander Sack Thu, 21 Oct 2003 20:55:59 +0200 + +mozilla-thunderbird (0.2-3) unstable; urgency=low + + * fixed sudo bug (closes: Bug#216469) + * repackaging because of enigmail build exception + + -- Alexander Sack Wed, 15 Oct 2003 17:56:59 +0200 + +mozilla-thunderbird (0.2-2) unstable; urgency=low + + * Don't limit archs to i386. + + -- Soeren Boll Overgaard Sat, 18 Oct 2003 10:27:05 +0000 + +mozilla-thunderbird (0.2-1) unstable; urgency=low + + * restarted versioning for official debian upload + * Uploaded by S. Boll Overgaard + - Closes thunderbird ITP (closes: Bug#196504) + + -- Alexander Sack Wed, 15 Oct 2003 17:56:59 +0200 + +mozilla-thunderbird (0.3-0.1) unstable; urgency=low + + * New upstream release + + -- Alexander Sack Thu, 16 Oct 2003 10:51:59 +0200 + +mozilla-thunderbird (0.2asac-5) unstable; urgency=low + + * some more lintian cleaning of source package + * added boll@debian.org as co-maintainer + * reduction of build depends redundancy + + -- Alexander Sack Wed, 15 Oct 2003 17:56:50 +0000 + +mozilla-thunderbird (0.2asac-4) unstable; urgency=low + + * minimized build-depends & removed version constraints from build-deps to ease backporting + * added lintian override + * added long description for enigmail + * adjusted preference directory to $HOME/.mozilla-thunderbird + + -- Alexander Sack Mon, 13 Oct 2003 20:53:45 +0000 + +mozilla-thunderbird (0.2asac-3) unstable; urgency=low + + * needed to get the the source archive up again :( + + -- Alexander Sack Thu, 9 Oct 2003 18:51:01 +0200 + +mozilla-thunderbird (0.2asac-2) unstable; urgency=high + + * fixed the build procedure for enigmail binary package + + -- Alexander Sack Tue, 7 Oct 2003 23:04:01 +0200 + +mozilla-thunderbird (0.2asac-1) unstable; urgency=low + + * New upstream release + * added binary package mozilla-thunderbird-enigmail + * now update-chrome enabled + * startup hooks (currently for enigmail) allowed in + /var/lib/mozilla-thunderbird/startup-hooks.d + + -- Alexander Sack Fri, 3 Oct 2003 22:16:05 +0200 + +mozilla-thunderbird (0.2-5) unstable; urgency=low + + * changed menu entry image to gif image of size 32x32 -> lintian --check + tested + * added manual pages for mozilla-thunderbird & thunderbird + * remove mozilla-thunderbird-config from binary package + + -- Alexander Sack Thu, 2 Oct 2003 02:30:44 +0200 + +mozilla-thunderbird (0.2-4) unstable; urgency=low + + * fixed conflict with snapshot build + + + -- Alexander Sack Wed, 1 Oct 2003 16:50:33 +0200 + +mozilla-thunderbird (0.2-3) unstable; urgency=low + + * apply quickfix for bug #212604 (bugzilla.mozilla.org) + -> firebird ist remote startable even if thunderbird is + running + * added basic man pages + + -- Alexander Sack Wed, 1 Oct 2003 12:21:04 +0200 + +mozilla-thunderbird (0.2-2) unstable; urgency=low + + * corrected menu entry command to thunderbird + + -- Alexander Sack Thu, 25 Sep 2003 12:00:36 +0200 + +mozilla-thunderbird (0.2-1) unstable; urgency=low + + * Initial Release. + + -- Alexander Sack Wed, 24 Sep 2003 18:55:50 +0200 diff --git a/compat b/compat new file mode 100644 index 0000000000..f599e28b8a --- /dev/null +++ b/compat @@ -0,0 +1 @@ +10 diff --git a/control b/control new file mode 100644 index 0000000000..acea1a76ca --- /dev/null +++ b/control @@ -0,0 +1,1546 @@ +Source: thunderbird +Section: mail +Priority: optional +Maintainer: Carsten Schoenert +Uploaders: + Christoph Goehre , +Build-Depends: + autoconf2.13, + bash-completion, + bzip2, + cargo (>= 0.35), + cbindgen (>= 0.8.7), + clang, + debhelper (>= 10.2.5~), + dh-apparmor, + dh-exec, + dpkg (>= 1.16.18~), + dpkg-dev (>= 1.16.18~), + libasound2-dev [linux-any], + libatk-adaptor, + libbz2-dev, + libcairo2-dev (>= 1.10.2-1.1~), + libclang-dev, + libdbus-glib-1-dev (>= 0.60), + libevent-dev (>= 1.4.1), + libffi-dev, + libfontconfig1-dev, + libglib2.0-dev (>= 2.22.0), + libglib2.0-dev, + libgtk2.0-dev, + libgtk-3-dev (>= 3.4), + libhunspell-dev (>= 1.5.1~), + libicu-dev (>= 59.1~), + libjsoncpp-dev, + libidl-dev (>= 0.8.0), + libiw-dev [linux-any], + libnotify-dev, + libnspr4-dev (>= 2:4.21~), + libnss3-dev (>= 2:3.55~), + libpng-dev, + libpulse-dev, + libreadline-dev, + librust-toml-dev, + libstartup-notification0-dev, + libsqlite3-dev (>= 3.28.0~), + libvpx-dev (>= 1.5.0), + libx11-dev, + libx11-xcb-dev, + libxau-dev, + libxft-dev, + libxt-dev, + llvm-dev, + mesa-common-dev, + nodejs (>= 8.11), + python2.7, + rustc (>= 1.34), + unzip, + yasm (>= 1.1), + zip, + zlib1g-dev, +Vcs-Git: https://salsa.debian.org/mozilla-team/thunderbird.git +Vcs-Browser: https://salsa.debian.org/mozilla-team/thunderbird +Homepage: https://www.thunderbird.net/ +X-Debian-Homepage: http://wiki.debian.org/Thunderbird +Standards-Version: 4.5.0 + +Package: thunderbird +Architecture: amd64 arm64 i386 mips64el ppc64el s390x ppc64 +Depends: + debianutils (>= 1.16), + fontconfig, + libnss3 (>= 2:3.55), + psmisc, + x11-utils, + ${misc:Depends}, + ${shlibs:Depends}, +Recommends: + lightning (= ${source:Version}), + myspell-en-us | hunspell-dictionary | myspell-dictionary, +Suggests: + apparmor, + fonts-lyx, + libgssapi-krb5-2, +Provides: + mail-reader, +Breaks: + birdtray (<< 1.7.0+ds-1~), + calendar-google-provider (<=1:68.2.1-1), + enigmail (<< 2:2.1.2~), + hunspell-ar (<< 0.0.0+20080110-1.1), + hunspell-da (<< 1:3.1.0-3), + hunspell-de-at (<< 20071211-2), + hunspell-de-ch (<< 20071211-2), + hunspell-de-de (<< 20071211-2), + hunspell-de-med (<< 20090825-1), + hunspell-en-ca (<< 1:3.1.0-3), + hunspell-en-us (<< 20070829-3), + hunspell-fr (<< 1:3.1.0-3), + hunspell-gl-es (<< 2.2a-6), + hunspell-hu (<< 1:3.1.0-3), + hunspell-ko (<< 0.3.3-1), + hunspell-ne (<< 1:3.1.0-3), + hunspell-se (<< 1.0~beta6.20081222-1.1), + hunspell-sh (<< 1:3.1.0-3), + hunspell-sr (<< 1:3.1.0-3), + hunspell-uz (<< 0.6-3.1), + hunspell-vi (<< 1:3.1.0-3), + jsunit (<< 0.2.2-1~), + lightning (<< ${source:Version}), + myspell-af (<< 1:3.1.0-3), + myspell-ca (<< 0.6-8), + myspell-cs-cz (<< 20040229-4.1), + myspell-da (<< 1.6.18-1.1), + myspell-de-at (<< 20071211-2), + myspell-de-ch (<< 20071211-2), + myspell-de-de (<< 20071211-2), + myspell-de-de-oldspell (<< 1:2-25.1), + myspell-el-gr (<< 0.3-1.1), + myspell-en-au (<< 2.1-5), + myspell-en-gb (<< 1:3.1.0-3), + myspell-en-us (<< 1:3.1.0-3), + myspell-en-za (<< 1:3.1.0-3), + myspell-eo (<< 2.1.2000.02.25-41), + myspell-es (<< 1.10-7), + myspell-et (<< 1:20030606-12.1), + myspell-fa (<< 0.20070816-2), + myspell-fi (<< 0.7-17.2), + myspell-fo (<< 0.2.36-3), + myspell-fr (<< 1.4-25), + myspell-fr-gut (<< 1:1.0-26.1), + myspell-ga (<< 2.0-19), + myspell-gd (<< 0.50-7), + myspell-gv (<< 0.50-8), + myspell-hr (<< 20060617-2), + myspell-hu (<< 0.99.4-1.2), + myspell-hy (<< 0.10.1-1.1), + myspell-it (<< 1:3.1.0-3), + myspell-ku (<< 0.20.0-1.1), + myspell-lv (<< 0.7.3-3.1), + myspell-nb (<< 2.0.10-3.1), + myspell-ne (<< 1.0-4.1), + myspell-nl (<< 1:1.10-3), + myspell-nn (<< 2.0.10-3.1), + myspell-pl (<< 20090830-1), + myspell-pt-br (<< 2009.03.30-1.1), + myspell-pt-pt (<< 20090309-1.1), + myspell-ru (<< 0.99g5-8.1), + myspell-sk (<< 0.5.5a-2.1), + myspell-sv-se (<< 1.3.8-6-2.2), + myspell-sw (<< 1:3.1.0-3), + myspell-th (<< 1:3.1.0-3), + myspell-tl (<< 0.4-0-5), + xul-ext-compactheader (<< 3.0.0~), + xul-ext-dispmua (<= 1.8.2-1), + xul-ext-exteditor (<= 1.0.3-1), + xul-ext-firetray (<= 0.6.1+dfsg-1.2), + xul-ext-foxyproxy-standard (<< 4.5.6-debian-2~), + xul-ext-gnome-keyring (<< 0.12-1~), + xul-ext-nostalgy (<= 0.2.36-1.2), + xul-ext-quotecolors (<=0.3-6), + xul-ext-sieve (<< 0.3.1+dfsg-1~), + xul-ext-sogo-connector (<< 68.0.0-1~), +Description: mail/news client with RSS, chat and integrated spam filter support + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + It supports different mail accounts, no matter of the used protocol like + POP(s) or IMAP(s), has an integrated learning Spam filter, and offers easy + organization of mails with tagging and virtual folders. Also, more features + can be added by installing extensions. + . + The goal of Thunderbird is to produce a cross platform standalone mail + application using the XUL user interface language. + +Package: lightning +Architecture: all +Depends: + thunderbird (>= ${binary:Version}), + ${misc:Depends}, +Suggests: + fonts-lyx, +Provides: + calendar-timezones, +Breaks: + calendar-timezones, +Replaces: + calendar-timezones, +Description: Calendar Extension for Thunderbird + Lightning is a calendar extension for Thunderbird. It can handle events, + event invitations and tasks in multiple calendars. + . + It supports local calendars, CalDAV and plain ics files on CardDAV and WebDAV. + +Package: thunderbird-l10n-all +Architecture: all +Section: metapackages +Depends: + thunderbird-l10n-ar (>= ${binary:Version}), + thunderbird-l10n-ast (>= ${binary:Version}), + thunderbird-l10n-be (>= ${binary:Version}), + thunderbird-l10n-bg (>= ${binary:Version}), + thunderbird-l10n-br (>= ${binary:Version}), + thunderbird-l10n-ca (>= ${binary:Version}), + thunderbird-l10n-cs (>= ${binary:Version}), + thunderbird-l10n-da (>= ${binary:Version}), + thunderbird-l10n-de (>= ${binary:Version}), + thunderbird-l10n-dsb (>= ${binary:Version}), + thunderbird-l10n-el (>= ${binary:Version}), + thunderbird-l10n-en-gb (>= ${binary:Version}), + thunderbird-l10n-es-ar (>= ${binary:Version}), + thunderbird-l10n-es-es (>= ${binary:Version}), + thunderbird-l10n-et (>= ${binary:Version}), + thunderbird-l10n-eu (>= ${binary:Version}), + thunderbird-l10n-fi (>= ${binary:Version}), + thunderbird-l10n-fr (>= ${binary:Version}), + thunderbird-l10n-fy-nl (>= ${binary:Version}), + thunderbird-l10n-ga-ie (>= ${binary:Version}), + thunderbird-l10n-gd (>= ${binary:Version}), + thunderbird-l10n-gl (>= ${binary:Version}), + thunderbird-l10n-he (>= ${binary:Version}), + thunderbird-l10n-hr (>= ${binary:Version}), + thunderbird-l10n-hsb (>= ${binary:Version}), + thunderbird-l10n-hu (>= ${binary:Version}), + thunderbird-l10n-hy-am (>= ${binary:Version}), + thunderbird-l10n-id (>= ${binary:Version}), + thunderbird-l10n-is (>= ${binary:Version}), + thunderbird-l10n-it (>= ${binary:Version}), + thunderbird-l10n-ja (>= ${binary:Version}), + thunderbird-l10n-kab (>= ${binary:Version}), + thunderbird-l10n-kk (>= ${binary:Version}), + thunderbird-l10n-ko (>= ${binary:Version}), + thunderbird-l10n-lt (>= ${binary:Version}), + thunderbird-l10n-ms (>= ${binary:Version}), + thunderbird-l10n-nb-no (>= ${binary:Version}), + thunderbird-l10n-nl (>= ${binary:Version}), + thunderbird-l10n-nn-no (>= ${binary:Version}), + thunderbird-l10n-pl (>= ${binary:Version}), + thunderbird-l10n-pt-br (>= ${binary:Version}), + thunderbird-l10n-pt-pt (>= ${binary:Version}), + thunderbird-l10n-rm (>= ${binary:Version}), + thunderbird-l10n-ro (>= ${binary:Version}), + thunderbird-l10n-ru (>= ${binary:Version}), + thunderbird-l10n-si (>= ${binary:Version}), + thunderbird-l10n-sk (>= ${binary:Version}), + thunderbird-l10n-sl (>= ${binary:Version}), + thunderbird-l10n-sq (>= ${binary:Version}), + thunderbird-l10n-sr (>= ${binary:Version}), + thunderbird-l10n-sv-se (>= ${binary:Version}), + thunderbird-l10n-tr (>= ${binary:Version}), + thunderbird-l10n-uk (>= ${binary:Version}), + thunderbird-l10n-vi (>= ${binary:Version}), + thunderbird-l10n-zh-cn (>= ${binary:Version}), + thunderbird-l10n-zh-tw (>= ${binary:Version}), + ${misc:Depends}, +Description: All language packages for Thunderbird (meta) + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package is a metapackage depending on all available localization of + Thunderbird. + +Package: thunderbird-l10n-ar +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:ar +Replaces: + lightning-l10n-ar (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-ar (<< 1:60.2.1-1~), +Provides: + lightning-l10n-ar, +Recommends: + hunspell-ar, +Description: Arabic language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Arabic. + +Package: thunderbird-l10n-ast +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:ast +Replaces: + lightning-l10n-ast (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-ast (<< 1:60.2.1-1~), +Provides: + lightning-l10n-ast, +Description: Asturian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Asturian. + +Package: thunderbird-l10n-be +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:be +Replaces: + lightning-l10n-be (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-be (<< 1:60.2.1-1~), +Provides: + lightning-l10n-be, +Recommends: + hunspell-be, +Description: Belarusian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Belarusian. + +Package: thunderbird-l10n-bg +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:bg +Replaces: + lightning-l10n-bg (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-bg (<< 1:60.2.1-1~), +Provides: + lightning-l10n-bg, +Recommends: + hunspell-bg | myspell-bg, +Description: Bulgarian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Bulgarian. + +Package: thunderbird-l10n-br +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:br +Replaces: + lightning-l10n-br (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-br (<< 1:60.2.1-1~), +Provides: + lightning-l10n-br, +Recommends: + hunspell-br, +Description: Breton language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Breton. + +Package: thunderbird-l10n-ca +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:ca +Replaces: + lightning-l10n-ca (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-ca (<< 1:60.2.1-1~), +Provides: + lightning-l10n-ca, +Recommends: + hunspell-ca | myspell-ca, +Description: Catalan/Valencian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Catalan/Valencian. + +Package: thunderbird-l10n-cs +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:cs +Replaces: + lightning-l10n-cs (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-cs (<< 1:60.2.1-1~), +Provides: + lightning-l10n-cs, +Recommends: + hunspell-cs | myspell-cs-cz, +Description: Czech language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Czech. + +Package: thunderbird-l10n-cy +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:cy +Replaces: + lightning-l10n-cy (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-cy (<< 1:60.2.1-1~), +Provides: + lightning-l10n-cy, +Description: Welsh language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Welsh. + +Package: thunderbird-l10n-da +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:da +Replaces: + lightning-l10n-da (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-da (<< 1:60.2.1-1~), +Provides: + lightning-l10n-da, +Recommends: + myspell-da | hunspell-da, +Description: Danish language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Danish. + +Package: thunderbird-l10n-de +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:de +Replaces: + lightning-l10n-de (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-de (<< 1:60.2.1-1~), +Provides: + lightning-l10n-de, +Recommends: + hunspell-de-de | hunspell-de-at | hunspell-de-ch | myspell-de-de | myspell-de-at | myspell-de-ch, +Description: German language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in German. + +Package: thunderbird-l10n-dsb +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:dsb +Replaces: + lightning-l10n-dsb (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-dsb (<< 1:60.2.1-1~), +Provides: + lightning-l10n-dsb, +Description: Lower Sorbian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Lower Sorbian. + +Package: thunderbird-l10n-el +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:el +Replaces: + lightning-l10n-el (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-el (<< 1:60.2.1-1~), +Provides: + lightning-l10n-el, +Recommends: + hunspell-el | myspell-el-gr, +Description: Greek language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Greek. + +Package: thunderbird-l10n-en-gb +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:en-GB +Replaces: + lightning-l10n-en-gb (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-en-gb (<< 1:60.2.1-1~), +Provides: + lightning-l10n-en-gb, +Recommends: + hunspell-en-gb | hunspell-en-au | hunspell-en-ca | hunspell-en-za, +Description: English (Great Britain) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in English (Great + Britain). + +Package: thunderbird-l10n-es-ar +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:es-AR +Replaces: + lightning-l10n-es-ar (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-es-ar (<< 1:60.2.1-1~), +Provides: + lightning-l10n-es-ar, +Recommends: + hunspell-es | myspell-es, +Description: Spanish (Argentina) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Spanish (Argentina). + +Package: thunderbird-l10n-es-es +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:es-ES +Replaces: + lightning-l10n-es-es (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-es-es (<< 1:60.2.1-1~), +Provides: + lightning-l10n-es-es, +Recommends: + hunspell-es | myspell-es, +Description: Spanish (Spain) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Spanish (Spain). + +Package: thunderbird-l10n-et +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:et +Replaces: + lightning-l10n-et (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-et (<< 1:60.2.1-1~), +Provides: + lightning-l10n-et, +Recommends: + myspell-et, +Description: Estonian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Estonian. + +Package: thunderbird-l10n-eu +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:eu +Replaces: + lightning-l10n-eu (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-eu (<< 1:60.2.1-1~), +Provides: + lightning-l10n-eu, +Recommends: + hunspell-eu, +Description: Basque language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Basque. + +Package: thunderbird-l10n-fi +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:fi +Replaces: + lightning-l10n-fi (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-fi (<< 1:60.2.1-1~), +Provides: + lightning-l10n-fi, +Recommends: + myspell-fi, + xul-ext-mozvoikko, +Description: Finnish language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Finnish. + +Package: thunderbird-l10n-fr +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:fr +Replaces: + lightning-l10n-fr (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-fr (<< 1:60.2.1-1~), +Provides: + lightning-l10n-fr, +Recommends: + hunspell-fr | myspell-fr | myspell-fr-gut, +Description: French language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in French. + +Package: thunderbird-l10n-fy-nl +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:fy-NL +Replaces: + lightning-l10n-fy-nl (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-fy-nl (<< 1:60.2.1-1~), +Provides: + lightning-l10n-fy-nl, +Description: Frisian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Frisian. + +Package: thunderbird-l10n-ga-ie +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:ga-IE +Replaces: + lightning-l10n-ga-ie (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-ga-ie (<< 1:60.2.1-1~), +Provides: + lightning-l10n-ga-ie, +Description: Irish (Ireland) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Irish (Ireland). + +Package: thunderbird-l10n-gd +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:gd +Replaces: + lightning-l10n-gd (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-gd (<< 1:60.2.1-1~), +Provides: + lightning-l10n-gd, +Recommends: + hunspell-gd | myspell-gd, +Description: Gaelic (Scottish) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Gaelic (Scottish). + +Package: thunderbird-l10n-gl +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:gl +Replaces: + lightning-l10n-gl (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-gl (<< 1:60.2.1-1~), +Provides: + lightning-l10n-gl, +Recommends: + hunspell-gl | hunspell-gl-es, +Description: Galician language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Galician. + +Package: thunderbird-l10n-he +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:he +Replaces: + lightning-l10n-he (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-he (<< 1:60.2.1-1~), +Provides: + lightning-l10n-he, +Recommends: + hunspell-he | myspell-he, +Description: Hebrew language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Hebrew. + +Package: thunderbird-l10n-hr +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:hr +Replaces: + lightning-l10n-hr (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-hr (<< 1:60.2.1-1~), +Provides: + lightning-l10n-hr, +Recommends: + hunspell-hr | myspell-hr, +Description: Croatian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Croatian. + +Package: thunderbird-l10n-hsb +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:hsb +Replaces: + lightning-l10n-hsb (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-hsb (<< 1:60.2.1-1~), +Provides: + lightning-l10n-hsb, +Recommends: + aspell-hsb, +Description: Upper Sorbian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Upper Sorbian. + +Package: thunderbird-l10n-hu +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:hu +Replaces: + lightning-l10n-hu (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-hu (<< 1:60.2.1-1~), +Provides: + lightning-l10n-hu, +Recommends: + hunspell-hu | myspell-hu, +Description: Hungarian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Hungarian. + +Package: thunderbird-l10n-hy-am +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:hy-AM +Replaces: + lightning-l10n-hy-am (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-hy-am (<< 1:60.2.1-1~), +Provides: + lightning-l10n-hy-am, +Recommends: + myspell-hy, +Description: Armenian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Armenian. + +Package: thunderbird-l10n-id +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:id +Replaces: + lightning-l10n-id (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-id (<< 1:60.2.1-1~), +Provides: + lightning-l10n-id, +Description: Indonesian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Indonesian. + +Package: thunderbird-l10n-is +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:is +Replaces: + lightning-l10n-is (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-is (<< 1:60.2.1-1~), +Provides: + lightning-l10n-is, +Recommends: + hunspell-is, +Description: Icelandic language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Icelandic. + +Package: thunderbird-l10n-it +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:it +Replaces: + lightning-l10n-it (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-it (<< 1:60.2.1-1~), +Provides: + lightning-l10n-it, +Recommends: + hunspell-it | myspell-it, +Description: Italian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Italian. + +Package: thunderbird-l10n-ja +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:ja +Replaces: + lightning-l10n-ja (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-ja (<< 1:60.2.1-1~), +Provides: + lightning-l10n-ja, +Description: Japanese language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Japanese. + +Package: thunderbird-l10n-kab +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:kab +Replaces: + lightning-l10n-kab (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-kab (<< 1:60.2.1-1~), +Provides: + lightning-l10n-kab, +Description: Kabyle language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Kabyle. + +Package: thunderbird-l10n-kk +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:kk +Replaces: + lightning-l10n-kk (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-kk (<< 1:60.2.1-1~), +Provides: + lightning-l10n-kk, +Recommends: + hunspell-kk, +Description: Kazakh language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Kazakh. + +Package: thunderbird-l10n-ko +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:ko +Replaces: + lightning-l10n-ko (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-ko (<< 1:60.2.1-1~), +Provides: + lightning-l10n-ko, +Recommends: + hunspell-ko, +Description: Korean language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Korean. + +Package: thunderbird-l10n-lt +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:lt +Replaces: + lightning-l10n-lt (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-lt (<< 1:60.2.1-1~), +Provides: + lightning-l10n-lt, +Recommends: + hunspell-lt | myspell-lt, +Description: Lithuanian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Lithuanian. + +Package: thunderbird-l10n-ms +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:ms +Replaces: + lightning-l10n-ms (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-ms (<< 1:60.2.1-1~), +Provides: + lightning-l10n-ms, +Description: Malay language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Malay. + +Package: thunderbird-l10n-nb-no +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:nb-NO +Replaces: + lightning-l10n-nb-no (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-nb-no (<< 1:60.2.1-1~), +Provides: + lightning-l10n-nb-no, +Recommends: + hunspell-no | myspell-nb, +Description: Bokmaal (Norway) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Bokmaal (Norway). + +Package: thunderbird-l10n-nl +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:nl +Replaces: + lightning-l10n-nl (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-nl (<< 1:60.2.1-1~), +Provides: + lightning-l10n-nl, +Recommends: + hunspell-nl | myspell-nl, +Description: Dutch language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Dutch. + +Package: thunderbird-l10n-nn-no +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:nn-NO +Replaces: + lightning-l10n-nn-no (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-nn-no (<< 1:60.2.1-1~), +Provides: + lightning-l10n-nn-no, +Recommends: + hunspell-no | myspell-nn, +Description: Nynorsk (Norway) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Nynorsk (Norway). + +Package: thunderbird-l10n-pl +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:pl +Replaces: + lightning-l10n-pl (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-pl (<< 1:60.2.1-1~), +Provides: + lightning-l10n-pl, +Recommends: + hunspell-pl | myspell-pl, +Description: Polish language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Polish. + +Package: thunderbird-l10n-pt-br +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:pt-BR +Replaces: + lightning-l10n-pt-br (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-pt-br (<< 1:60.2.1-1~), +Provides: + lightning-l10n-pt-br, +Recommends: + hunspell-pt-br | myspell-pt-br | myspell-pt, +Description: Portuguese (Brazil) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Portuguese (Brazil). + +Package: thunderbird-l10n-pt-pt +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:pt-PT +Replaces: + lightning-l10n-pt-pt (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-pt-pt (<< 1:60.2.1-1~), +Provides: + lightning-l10n-pt-pt, +Recommends: + hunspell-pt-pt | myspell-pt-pt | myspell-pt, +Description: Portuguese (Portugal) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Portuguese (Portugal). + +Package: thunderbird-l10n-rm +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:rm +Replaces: + lightning-l10n-rm (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-rm (<< 1:60.2.1-1~), +Provides: + lightning-l10n-rm, +Description: Romansh language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Romansh. + +Package: thunderbird-l10n-ro +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:ro +Replaces: + lightning-l10n-ro (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-ro (<< 1:60.2.1-1~), +Provides: + lightning-l10n-ro, +Recommends: + hunspell-ro, +Description: Romania language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Romania. + +Package: thunderbird-l10n-ru +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:ru +Replaces: + lightning-l10n-ru (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-ru (<< 1:60.2.1-1~), +Provides: + lightning-l10n-ru, +Recommends: + hunspell-ru | myspell-ru, +Description: Russian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Russian. + +Package: thunderbird-l10n-si +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:si +Replaces: + lightning-l10n-si (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-si (<< 1:60.2.1-1~), +Provides: + lightning-l10n-si, +Recommends: + hunspell-si, +Description: Sinhala language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Sinhala. + +Package: thunderbird-l10n-sk +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:sk +Replaces: + lightning-l10n-sk (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-sk (<< 1:60.2.1-1~), +Provides: + lightning-l10n-sk, +Recommends: + hunspell-sk | myspell-sk, +Description: Slovak language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Slovak. + +Package: thunderbird-l10n-sl +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:sl +Replaces: + lightning-l10n-sl (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-sl (<< 1:60.2.1-1~), +Provides: + lightning-l10n-sl, +Recommends: + hunspell-sl | myspell-sl, +Description: Slovenian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Slovenian. + +Package: thunderbird-l10n-sq +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:sq +Replaces: + lightning-l10n-sq (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-sq (<< 1:60.2.1-1~), +Provides: + lightning-l10n-sq, +Description: Albanian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Albanian. + +Package: thunderbird-l10n-sr +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:sr +Replaces: + lightning-l10n-sr (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-sr (<< 1:60.2.1-1~), +Provides: + lightning-l10n-sr, +Recommends: + hunspell-sr, +Description: Serbian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Serbian. + +Package: thunderbird-l10n-sv-se +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:sv-SE +Replaces: + lightning-l10n-sv-se (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-sv-se (<< 1:60.2.1-1~), +Provides: + lightning-l10n-sv-se, +Recommends: + hunspell-sv | myspell-sv-se, +Description: Swedish (Sweden) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Swedish (Sweden). + +Package: thunderbird-l10n-tr +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:tr +Replaces: + lightning-l10n-tr (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-tr (<< 1:60.2.1-1~), +Provides: + lightning-l10n-tr, +Description: Turkish language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Turkish. + +Package: thunderbird-l10n-uk +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:uk +Replaces: + lightning-l10n-uk (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-uk (<< 1:60.2.1-1~), +Provides: + lightning-l10n-uk, +Recommends: + hunspell-uk | myspell-uk +Description: Ukrainian language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Ukrainian. + +Package: thunderbird-l10n-vi +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:vi +Replaces: + lightning-l10n-vi (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-vi (<< 1:60.2.1-1~), +Provides: + lightning-l10n-vi, +Recommends: + hunspell-vi, +Description: Vietnamese language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Vietnamese. + +Package: thunderbird-l10n-zh-cn +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:zh-CN +Replaces: + lightning-l10n-zh-cn (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-zh-cn (<< 1:60.2.1-1~), +Provides: + lightning-l10n-zh-cn, +Description: Chinese (China) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Chinese (China). + +Package: thunderbird-l10n-zh-tw +Architecture: all +Section: localization +Depends: + thunderbird (<< ${source:Version}.1~), + thunderbird (>= ${source:Version}), + ${misc:Depends}, +Homepage: https://wiki.mozilla.org/L10n:Teams:zh-TW +Replaces: + lightning-l10n-zh-tw (<< 1:60.2.1-1~), +Breaks: + lightning-l10n-zh-tw (<< 1:60.2.1-1~), +Provides: + lightning-l10n-zh-tw, +Description: Chinese (Taiwan) language package for Thunderbird + Thunderbird is an mail client suitable for free distribution. The goal of + Thunderbird is to produce a cross platform stand-alone mail application using + the XUL user interface language. + . + This package contains the localization of Thunderbird in Chinese (Taiwan). diff --git a/copyright b/copyright new file mode 100644 index 0000000000..e4342fd6b5 --- /dev/null +++ b/copyright @@ -0,0 +1,3480 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: Thunderbird +Source: https://ftp.mozilla.org/pub/mozilla.org/thunderbird/ +Disclaimer: The original upstream tarball is modified from upstream by + removing a set of sourceless binary, non-free, and VCS-related files. You + can find a repack.py script in the debian directory doing this cleanup, + using filtering data present in a source.filter file in the same directory. + If this file is incomplete, which I'm pretty sure is the case, because it's + difficult not to forget anything in this huge amount of data, please file + a bug or contact me. + Some licensing terms are not included verbatim in this file on purpose, for + terms that are available in a file in subdirectories that are not used to + build the binary packages. + +Files: * +Copyright: 1998-2016, Mozilla Project +License: MPL-2.0 or GPL-2 or LGPL-2.1 + +Files: debian/* +Copyright: 2003-2009, Alexander Sack + 2008, Fabien Tassin + 2013-2018, Carsten Schoenert + 2009-2013, Guido Günther + 2010-2016, Christoph Goehre +License: MPL-1.1 or MPL-2.0 or GPL-2 or LGPL-2.1 + +Files: debian/logo/icedove/icedove_icon_plain.svg + debian/logo/icedove/icedove_icon_profile_plain.svg + debian/logo/icedove/icedove_icon_profile.svg + debian/logo/icedove/icedove_icon.svg + debian/logo/icedove/icedove_lettering.svg + debian/logo/icedove/icedove_logo_plain.svg + debian/logo/icedove/icedove_logo.svg +Copyright: 2006-2007, Ricardo Fernández Fuentes +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: debian/logo/icedove/icedove_icon_plain.svg +Copyright: 1998-2016, Mozilla Foundation +License: MPL-2.0 or GPL-2 or LGPL-2.1 + +Files: comm/calendar/* +Copyright: no-info-found +License: MPL-2.0 + +Files: comm/calendar/base/modules/* +Copyright: 2011-2012, Philipp Kewisch +License: MPL-2.0 + +Files: comm/calendar/itip/* +Copyright: 2007, Simdesk Technologies +License: MPL-1.1 + +Files: comm/calendar/libical/* +Copyright: Eric Busboom +License: MPL-1.1 or LGPL-2.1 + +Files: comm/calendar/libical/scripts/mkneticali.pl +Copyright: 1999, Eric Busboom +License: MPL-1.0 + +Files: comm/calendar/libical/scripts/mkparameterrestrictions.pl + comm/calendar/libical/scripts/mkrestrictionrecords.pl +Copyright: 1999, Graham Davison +License: MPL-1.0 + +Files: comm/calendar/libical/src/libical/astime.h + comm/calendar/libical/src/libical/caldate.c +Copyright: 1986-2000, Hiram Clawson +License: BSD-2-clause + +Files: comm/calendar/libical/src/libical/icalarray.c + comm/calendar/libical/src/libical/icalarray.h +Copyright: 2001, Ximian, Inc +License: MPL-1.0 + +Files: comm/calendar/libical/src/libical/icalattach.c +Copyright: 2000, Andrea Campi +License: MPL-1.0 + +Files: comm/calendar/libical/src/libical/icalattach.h + comm/calendar/libical/src/libical/icalattachimpl.h +Copyright: 2000, 2002, Andrea Campi +License: MPL-1.0 + +Files: comm/calendar/libical/src/libical/icalcomponent.c + comm/calendar/libical/src/libical/icalduration.c + comm/calendar/libical/src/libical/icalmime.c +Copyright: 2008, dothebart + 2000, Eric Busboom, http://www.softwarestudio.org +License: MPL-1.0 or LGPL-2.1 + +Files: comm/calendar/libical/src/libical/icalmemory.c + comm/calendar/libical/src/libical/icaltimezone.c + comm/calendar/libical/src/libical/icaltimezone.h + comm/calendar/libical/src/libical/icalparser.c + comm/calendar/libical/src/libical/sspm.c + comm/calendar/libical/src/libical/sspm.h +Copyright: 2008, dothebart +License: MPL-1.0 or LGPL-2.1 + +Files: comm/calendar/libical/src/libical/icptrholder.h + comm/calendar/libical/src/libical/vcomponent.h +Copyright: 2001, Critical Path +License: MPL-1.0 or LGPL-2.1 + +Files: comm/calendar/libical/src/libical/vsnprintf.c +Copyright: 1997, Theo de Raadt +License: BSD-2-clause + +Files: comm/chat/protocols/irc/test/test_sendBufferedCommand.js + comm/db/mork/* +Copyright: no-info-found +License: MPL-2.0 + +Files: comm/db/mork/public/* +Copyright: 1999, Netscape Communications Coportation + Blake Ross +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: comm/db/mork/src/mork.h + comm/db/mork/src/morkCh.h + comm/db/mork/src/morkCh.cpp + comm/db/mork/src/morkFile.h + comm/db/mork/src/morkMap.cpp + comm/db/mork/src/morkMap.h + comm/db/mork/src/morkNode.h + comm/db/mork/src/morkProbeMap.cpp + comm/db/mork/src/morkProbeMap.h + comm/db/mork/src/morkStream.h +Copyright: 1999, Netscape Communications Coportation +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: comm/db/mork/src/morkQuickSort.cpp +Copyright: 1992-1993, University of California +License: BSD-3-clause + +Files: comm/ldap/c-sdk/libraries/libldap/authzidctrl.c + comm/ldap/c-sdk/libraries/libldap/geteffectiverightsctrl.c + comm/ldap/c-sdk/libraries/libldap/pwmodext.c + comm/ldap/c-sdk/libraries/libldap/pwpctrl.c + comm/ldap/c-sdk/libraries/libldap/saslio.c + comm/ldap/c-sdk/libraries/libldap/userstatusctrl.c + comm/ldap/c-sdk/libraries/libldap/whoami.c +Copyright: 2005, Sun Microsystems +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: comm/ldap/c-sdk/include/disptmpl.h + comm/ldap/c-sdk/include/ldif.h + comm/ldap/c-sdk/include/portable.h + comm/ldap/c-sdk/include/regex.h + comm/ldap/c-sdk/include/srchpref.h + comm/ldap/c-sdk/libraries/liblber/* +Copyright: 1998-1999, Netscape Communications Coportation + 1990-1996, Regents of the University of Michigan +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: comm/ldap/c-sdk/libraries/libldap/abandon.c + comm/ldap/c-sdk/libraries/libldap/add.c + comm/ldap/c-sdk/libraries/libldap/cldap.c + comm/ldap/c-sdk/libraries/libldap/compare.c + comm/ldap/c-sdk/libraries/libldap/friendly.c + comm/ldap/c-sdk/libraries/libldap/getattr.c + comm/ldap/c-sdk/libraries/libldap/getentry.c + comm/ldap/c-sdk/libraries/libldap/getfilter.c + comm/ldap/c-sdk/libraries/libldap/getvalues.c + comm/ldap/c-sdk/libraries/libldap/modify.c + comm/ldap/c-sdk/libraries/libldap/open.c + comm/ldap/c-sdk/libraries/libldap/os-ip.c + comm/ldap/c-sdk/libraries/libldap/rename.c + comm/ldap/c-sdk/libraries/libldap/request.c + comm/ldap/c-sdk/libraries/libldap/reslist.c + comm/ldap/c-sdk/libraries/libldap/result.c + comm/ldap/c-sdk/libraries/libldap/sbind.c + comm/ldap/c-sdk/libraries/libldap/search.c + comm/ldap/c-sdk/libraries/libldap/ufn.c + comm/ldap/c-sdk/libraries/libldap/unbind.c +Copyright: 1998-1999, Netscape Communications Coportation + 1990, 1993-1995, Regents of the University of Michigan +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: comm/ldap/c-sdk/libraries/libldap/bind.c + comm/ldap/c-sdk/libraries/libldap/delete.c +Copyright: 1998-1999, Netscape Communications Coportation + 1990, Regents of the University of Michigan +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: comm/ldap/c-sdk/libraries/libldap/cache.c +Copyright: 1998-1999, Netscape Communications Coportation + 1993, The Regents of the University of Michigan +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: comm/ldap/c-sdk/libraries/libldap/charset.c + comm/ldap/c-sdk/libraries/libldap/countvalues.c + comm/ldap/c-sdk/libraries/libldap/disptmpl.c + comm/ldap/c-sdk/libraries/libldap/dsparse.c + comm/ldap/c-sdk/libraries/libldap/freevalues.c + comm/ldap/c-sdk/libraries/libldap/getdxbyname.c + comm/ldap/c-sdk/libraries/libldap/sort.c + comm/ldap/c-sdk/libraries/libldap/srchpref.c + comm/ldap/c-sdk/libraries/libldap/url.c +Copyright: 1998-1999, Netscape Communications Coportation + 1990-1996, Regents of the University of Michigan +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: comm/ldap/c-sdk/libraries/libldap/compat.c + comm/ldap/c-sdk/libraries/libldap/free.c +Copyright: 1998-1999, Netscape Communications Coportation + 1994, The Regents of the University of Michigan +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: comm/ldap/c-sdk/libraries/libldap/getdn.c +Copyright: 1998-1999, Netscape Communications Coportation + 1994, Regents of the University of Michigan +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: comm/mail/app/png.py +Copyright: 2009, David Jones + 2006, Nicko van Someren + 2006, Johann C. Rocholl +License: Expat + +Files: comm/mail/base/test/unit/resources/* + comm/mail/base/test/unit/test_alertHook.js + comm/mail/base/test/unit/test_attachmentChecker.js + comm/mail/base/test/unit/test_windows_font_migration.js + comm/mail/components/test/unit/test_about_support.js + comm/mail/locales/en-US/all-l10n.js +Copyright: no-info-found +License: MPL-2.0 + +Files: comm/mail/test/resources/jsbridge/* + comm/mail/test/resources/jsbridge/jsbridge/__init__.py + comm/mail/test/resources/mozmill/mozmill/* + comm/mail/test/resources/mozmill/setup.py +Copyright: 2007-2010, Mozilla Coportation +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: comm/mailnews/* + browser/* +Copyright: no-info-found +License: MPL-2.0 + +Files: comm/mailnews/addrbook/src/nsVCard.cpp + comm/mailnews/addrbook/src/nsVCard.h + comm/mailnews/addrbook/src/nsVCardObj.cpp + comm/mailnews/addrbook/src/nsVCardObj.h +Copyright: 1996, Apple Computer, Inc., AT&T Corp., International +License: MPL-2.0 + +Files: comm/mailnews/base/src/nsMsgAccountManager.h + comm/mailnews/local/src/nsPop3Protocol.cpp + comm/mailnews/mime/src/mimebuf.cpp + comm/mailnews/mime/src/mimebuf.h + comm/mailnews/mime/src/mimedrft.cpp + comm/mailnews/mime/src/mimei.cpp + comm/mailnews/mime/src/mimemrel.cpp + comm/mailnews/mime/src/mimeobj.cpp + comm/mailnews/mime/src/mimetext.cpp +Copyright: 2000, International Business Machines (IBM) Corporation +License: MPL-2.0 + +Files: comm/mailnews/mime/src/modmimee.h +Copyright: 1996, Netscape Communications Corporation +License: MPL-2.0 + +Files: browser/components/translation/cld2/* +Copyright: 2013-2014, Google Inc. +License: Apache-2.0 + +Files: browser/extensions/pdfjs/test/* +Copyright: no-info-found +License: public-domain + +Files: browser/extensions/pdfjs/content/* +Copyright: 2012-2015, Mozilla Foundation +License: Apache-2.0 + +Files: config/tests/unit-mozunit.py + config/tests/unitMozZipFile.py +Copyright: no-info-found +License: MPL-2.0 + +Files: docshell/test/* +Copyright: no-info-found +License: MPL-2.0 + +Files: dom/base/nsPropertyTable.cpp + dom/base/nsPropertyTable.h +Copyright: 2000, International Business Machines (IBM) +License: MPL-2.0 + +Files: dom/canvas/WebGLTexelConversions.h +Copyright: 2010, Mozilla Corporation + 2010, Google Inc. + 2010, Apple Inc. +License: BSD-2-clause + +Files: dom/canvas/WebGLValidateStrings.h +Copyright: 2011, Mozilla Corporation + 2011, Apple Inc. +License: BSD-2-clause + +Files: dom/imptests/importTestsuite.py + dom/imptests/parseFailures.py + dom/imptests/testharnessreport.js + dom/imptests/updateTestharness.py + dom/imptests/writeBuildFiles.py + dom/indexedDB/test/browser_bug839193.js + dom/indexedDB/test/bug839193.js +Copyright: no-info-found +License: MPL-2.0 + +Files: dom/events/PointerEvent.cpp + dom/events/PointerEvent.h +Copyright: 2013, Microsoft Open Technologies, Inc. +License: MPL-2.0 + +Files: dom/imptests/parseManifest.py +Copyright: 2011-2013, Ms2ger +License: Expat + +Files: dom/media/gmp/GMPVideoEncodedFrameImpl.h +Copyright: 2014, Mozilla Corporation +License: BSD-2-clause + +Files: dom/media/gmp/gmp-api/* +Copyright: 2014, Mozilla Foundation + 2011, The WebRTC project authors. +License: BSD-3-clause + +Files: dom/media/gmp/gmp-api/gmp-storage.h +Copyright: 2012-2014, Mozilla Foundation and contributors +License: Apache-2.0 + +Files: dom/media/gmp/gmp-api/gmp-errors.h + dom/media/gmp/gmp-api/gmp-platform.h +Copyright: 2014, Mozilla +License: BSD-3-clause + +Files: dom/media/test/make-headers.sh +Copyright: no-info-found +License: MPL-2.0 + +Files: dom/media/webaudio/FFTBlock.cpp + dom/media/webaudio/blink/* +Copyright: 2005-2006, 2008-2013, Google Inc. +License: BSD-3-clause + +Files: dom/media/webaudio/blink/DenormalDisabler.h + dom/media/webaudio/blink/HRTFPanner.cpp + dom/media/webaudio/blink/HRTFPanner.h +Copyright: 2010-2011, Google Inc. +License: BSD-2-clause + +Files: dom/media/webaudio/blink/IRC_Composite_C_R0195-incl.cpp +Copyright: no-info-found +License: MPL-2.0 + +Files: dom/media/webspeech/recognition/endpointer.cc + dom/media/webspeech/recognition/endpointer.h + dom/media/webspeech/recognition/energy_endpointer.cc + dom/media/webspeech/recognition/energy_endpointer.h + dom/media/webspeech/recognition/energy_endpointer_params.cc + dom/media/webspeech/recognition/energy_endpointer_params.h +Copyright: 2006-2013, The Chromium Authors +License: BSD-3-clause + +Files: dom/plugins/base/npruntime.h +Copyright: 2004, Apple Computer, Inc. and The Mozilla Foundation +License: BSD-3-clause + +Files: dom/plugins/ipc/PluginInterposeOSX.h +Copyright: 2006-2013, The Chromium Authors +License: BSD-3-clause + +Files: dom/plugins/test/testplugin/* +Copyright: 2008, 2010, Mozilla Corporation +License: BSD-3-clause + +Files: dom/plugins/test/testplugin/nptest_utils.cpp + dom/plugins/test/testplugin/nptest_utils.h +Copyright: 2006-2009, 2012, Apple Inc. +License: BSD-2-clause + +Files: dom/plugins/test/testplugin/secondplugin/* + dom/plugins/test/unit/* + dom/svg/test/matrixUtils.js + dom/tests/browser/browser_ConsoleAPITests.js + dom/tests/browser/browser_ConsoleStoragePBTest_perwindowpb.js + dom/tests/browser/browser_bug1004814.js + dom/tests/browser/browser_bug1008941_dismissGeolocationHanger.js + dom/tests/browser/browser_frame_elements.js + dom/tests/mochitest/dom-level1-core/* + dom/tests/mochitest/dom-level2-core/* + dom/tests/unit/test_bug319968.js + dom/tests/unit/test_bug465752.js +Copyright: no-info-found +License: MPL-2.0 + +Files: dom/tests/mochitest/ajax/jquery/dist/* +Copyright: 2006-2008, John Resig (jquery.com) +License: GPL-2 or Expat + +Files: dom/tests/mochitest/ajax/prototype/test/lib/* +Copyright: 2005, Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) + 2005, Michael Schuerig (http://www.schuerig.de/michael/) + 2005, Jon Tirsen (http://www.tirsen.com) +License: Expat + +Files: dom/tests/mochitest/ajax/scriptaculous/src/scriptaculous.js +Copyright: 2005-2007, Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) +License: Expat + +Files: dom/xul/nsXULElement.cpp +Copyright: 2000, International Business Machines (IBM) +License: MPL-2.0 + +Files: editor/libeditor/tests/* +Copyright: 2007-2008, 2010, 2012, Google Inc +License: Apache-2.0 + +Files: extensions/auth/gssapi.h +Copyright: 1993, OpenVision Technologies, Inc +License: other-1 + Permission to use, copy, modify, distribute, and sell this software + and its documentation for any purpose is hereby granted without fee, + provided that the above copyright notice appears in all copies and + that both that copyright notice and this permission notice appear in + supporting documentation, and that the name of OpenVision not be used + in advertising or publicity pertaining to distribution of the software + without specific, written prior permission. OpenVision makes no + representations about the suitability of this software for any + purpose. It is provided "as is" without express or implied warranty. + . + OPENVISION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + EVENT SHALL OPENVISION BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + +Files: extensions/spellcheck/hunspell/* +Copyright: 2002-2005 Kevin B. Hendricks, Stratford, Ontario, Canada + 2002-2005 László Németh +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: extensions/spellcheck/hunspell/src/phonet.cxx + extensions/spellcheck/hunspell/src/phonet.hxx +Copyright: 2000, 2007 Bjoern Jacke + 2007, László Németh +License: LGPL-2.1 + +Files: extensions/spellcheck/locales/en-US/hunspell/* +Copyright: various contributors +License: other-2 + The complete text of the hunspell License can be found in the + `README_en_US.txt' file in the same directory as this file. + +Files: gfx/cairo/cairo/* +Copyright: 2005-2008, RedHat, Inc. + 2003, University of Southern California + 2007-2008, Carl D. Worth , + Kristian Høgsberg , + Keith Packard , + Adrian Johnson + various contributors +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-analysis-surface-private.h + gfx/cairo/cairo/src/cairo-scaled-font.c + gfx/cairo/cairo/src/cairo-wideint-private.h + gfx/cairo/cairo/src/cairo-wideint-type-private.h + gfx/cairo/cairo/src/cairo-wideint.c +Copyright: 2004-2005, Keith Packard +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-analysis-surface.c +Copyright: 2007, Adrian Johnson + 2006, Keith Packard +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-arc.c + gfx/cairo/cairo/src/cairo-directfb-surface.c + gfx/cairo/cairo/src/cairo-directfb.h + gfx/cairo/cairo/src/cairo-fixed.c + gfx/cairo/cairo/src/cairo-glitz.h + gfx/cairo/cairo/src/cairo-hull.c + gfx/cairo/cairo/src/cairo-matrix.c + gfx/cairo/cairo/src/cairo-path-bounds.c + gfx/cairo/cairo/src/cairo-path-fill.c + gfx/cairo/cairo/src/cairo-path-stroke.c + gfx/cairo/cairo/src/cairo-pdf.h + gfx/cairo/cairo/src/cairo-png.c + gfx/cairo/cairo/src/cairo-polygon.c + gfx/cairo/cairo/src/cairo-ps.h + gfx/cairo/cairo/src/cairo-skia.h + gfx/cairo/cairo/src/cairo-slope.c + gfx/cairo/cairo/src/cairo-spline.c + gfx/cairo/cairo/src/cairo-xcb-xrender.h + gfx/cairo/cairo/src/cairo-xlib-xrender.h + gfx/cairo/cairo/src/cairo-xlib.h +Copyright: 2002-2003, University of Southern California +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-atomic-private.h +Copyright: 2010, Andrea Canciani + 2007, Chris Wilson +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-atomic.c + gfx/cairo/cairo/src/cairo-combsort-private.h + gfx/cairo/cairo/src/cairo-drm.h + gfx/cairo/cairo/src/cairo-freed-pool-private.h + gfx/cairo/cairo/src/cairo-freed-pool.c + gfx/cairo/cairo/src/cairo-list-private.h + gfx/cairo/cairo/src/cairo-path-in-fill.c + gfx/cairo/cairo/src/cairo-reference-count-private.h + gfx/cairo/cairo/src/cairo-rtree-private.h + gfx/cairo/cairo/src/cairo-rtree.c + gfx/cairo/cairo/src/cairo-script-surface.c + gfx/cairo/cairo/src/cairo-script.h + gfx/cairo/cairo/src/cairo-surface-clipper-private.h + gfx/cairo/cairo/src/cairo-surface-clipper.c + gfx/cairo/cairo/src/cairo-tee-surface-private.h + gfx/cairo/cairo/src/cairo-tee.h + gfx/cairo/cairo/src/cairo-xlib-display.c + gfx/cairo/cairo/src/cairo-xml-surface.c + gfx/cairo/cairo/src/cairo-xml.h +Copyright: 2007-2009, Chris Wilson +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-base64-stream.c +Copyright: 2009, Chris Wilson + 2005-2007, Emmanuel Pacaud +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-bentley-ottmann-rectangular.c + gfx/cairo/cairo/src/cairo-bentley-ottmann-rectilinear.c + gfx/cairo/cairo/src/cairo-bentley-ottmann.c +Copyright: 2008-2009, Chris Wilson + 2006, Red Hat, Inc + 2004, Carl Worth +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-beos-surface.cpp + gfx/cairo/cairo/src/cairo-beos.h +Copyright: 2005, Christian Biesinger +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-botor-scan-converter.c +Copyright: 2009, Intel Corporation + 2008, M Joonas Pihlaja + 2008, Chris Wilson + 2007, David Turner + 2006, Red Hat, Inc + 2004, Carl Worth +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-boxes-private.h + gfx/cairo/cairo/src/cairo-boxes.c + gfx/cairo/cairo/src/cairo-composite-rectangles-private.h + gfx/cairo/cairo/src/cairo-composite-rectangles.c + gfx/cairo/cairo/src/cairo-device-private.h + gfx/cairo/cairo/src/cairo-device.c + gfx/cairo/cairo/src/cairo-observer.c + gfx/cairo/cairo/src/cairo-rectangular-scan-converter.c + gfx/cairo/cairo/src/cairo-surface-snapshot-private.h + gfx/cairo/cairo/src/cairo-surface-subsurface-private.h + gfx/cairo/cairo/src/cairo-surface-subsurface.c +Copyright: 2009-2010, Intel Corporation +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-cff-subset.c + gfx/cairo/cairo/src/cairo-deflate-stream.c + gfx/cairo/cairo/src/cairo-image-info-private.h + gfx/cairo/cairo/src/cairo-image-info.c + gfx/cairo/cairo/src/cairo-type3-glyph-surface-private.h + gfx/cairo/cairo/src/cairo-type3-glyph-surface.c + gfx/cairo/cairo/src/cairo-win32-printing-surface.c +Copyright: 2006-2008, Adrian Johnson +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-clip.c + gfx/cairo/cairo/src/cairo-surface-offset-private.h + gfx/cairo/cairo/src/cairo-surface-wrapper-private.h +Copyright: 2009, Chris Wilson + 2005, Red Hat, Inc. + 2002, University of Southern California +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-color.c + gfx/cairo/cairo/src/cairo-compiler-private.h + gfx/cairo/cairo/src/cairo-error-private.h + gfx/cairo/cairo/src/cairo-gstate.c + gfx/cairo/cairo/src/cairo-path-fixed.c + gfx/cairo/cairo/src/cairo-ps-surface-private.h + gfx/cairo/cairo/src/cairo-rectangle.c + gfx/cairo/cairo/src/cairo-scaled-font-private.h + gfx/cairo/cairo/src/cairo-slope-private.h + gfx/cairo/cairo/src/cairo-surface-fallback-private.h + gfx/cairo/cairo/src/cairo-surface-fallback.c + gfx/cairo/cairo/src/cairo-surface-private.h + gfx/cairo/cairo/src/cairo-surface.c + gfx/cairo/cairo/src/cairo-types-private.h + gfx/cairo/cairo/src/cairo-version.c + gfx/cairo/cairo/src/cairo-xlib-surface.c + gfx/cairo/cairo/src/cairo.c + gfx/cairo/cairo/src/cairo.h + gfx/cairo/cairo/src/cairoint.h +Copyright: 2005, 2006, Red Hat, Inc. + 2002, 2003, University of Southern California +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-dwrite-font.cpp + gfx/cairo/cairo/src/cairo-dwrite-private.h + gfx/cairo/cairo/src/cairo-win32-refptr.h +Copyright: 2010, Mozilla Foundation +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-eagle-context.c + gfx/cairo/cairo/src/cairo-gl-private.h + gfx/cairo/cairo/src/cairo-gl-surface.c + gfx/cairo/cairo/src/cairo-glx-context.c +Copyright: 2009, Eric Anholt + 2009, Chris Wilson + 2005, 2010, Red Hat, Inc +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-fixed-private.h + gfx/cairo/cairo/src/cairo-fixed-type-private.h + gfx/cairo/cairo/src/cairo-malloc-private.h + gfx/cairo/cairo/src/cairo-qt-surface.cpp + gfx/cairo/cairo/src/cairo-qt.h + gfx/cairo/cairo/src/cairo-quartz-font.c + gfx/cairo/cairo/src/cairo-quartz-image-surface.c + gfx/cairo/cairo/src/cairo-quartz-image.h + gfx/cairo/cairo/src/cairo-quartz-surface.c + gfx/cairo/cairo/src/cairo-quartz.h +Copyright: 2006-2008, Mozilla Corporation +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-font-face-twin.c + gfx/cairo/cairo/src/cairo-ft-font.c + gfx/cairo/cairo/src/cairo-traps.c + gfx/cairo/cairo/src/cairo-xlib-screen.c +Copyright: 2005, 2007, 2008, Red Hat, Inc + 2000, 2002, 2004, Keith Packard +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-font-face.c + gfx/cairo/cairo/src/cairo-toy-font-face.c +Copyright: 2005, 2008, Red Hat, Inc. + 2002, University of Southern California +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-font-options.c +Copyright: 2005, Red Hat, Inc. +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-fontconfig-private.h +Copyright: 2010, Intel Corporation + 2005, Red Hat, Inc. + 2000, Keith Packard +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-gl-glyphs.c +Copyright: 2010, Red Hat, Inc., Intel Corporation + 2009, Chris Wilson +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-gl-shaders.c +Copyright: 2010, Red Hat, Inc., Eric Anholt + 2009, T. Zachary Laine +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-gl.h +Copyright: 2009, Eric Anholt + 2009, Chris Wilson +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-image-surface.c + gfx/cairo/cairo/src/cairo-xcb-surface.c + gfx/cairo/cairo/src/cairo-xcb.h +Copyright: 2009-2010, Intel Corporation + 2002, 2003, University of Southern California +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-misc.c + gfx/cairo/cairo/src/cairo-ps-surface.c +Copyright: 2007, 2008, Adrian Johnson + 2005, Red Hat, Inc. +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-mutex-impl-private.h + gfx/cairo/cairo/src/cairo-mutex-private.h + gfx/cairo/cairo/src/cairo-mutex-type-private.h +Copyright: 2007, Mathias Hasselmann + 2005, 2007, Red Hat, Inc. + 2002, University of Southern California +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-mutex-list-private.h + gfx/cairo/cairo/src/cairo-mutex.c +Copyright: 2007, Mathias Hasselmann +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-os2-private.h + gfx/cairo/cairo/src/cairo-os2-surface.c + gfx/cairo/cairo/src/cairo-os2.h +Copyright: 2005, 2006, netlabs.org +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-paginated-surface.c + gfx/cairo/cairo/src/cairo-pdf-operators-private.h + gfx/cairo/cairo/src/cairo-pdf-operators.c + gfx/cairo/cairo/src/cairo-pdf-surface-private.h + gfx/cairo/cairo/src/cairo-pdf-surface.c + gfx/cairo/cairo/src/cairo-recording-surface.c +Copyright: 2007, 2008, Adrian Johnson + 2004-2006, Red Hat, Inc +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-pen.c +Copyright: 2008, Chris Wilson + 2002, University of Southern California +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-platform.h +Copyright: 2005, Mozilla Foundation +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-quartz-private.h +Copyright: 2006-2007, Mozilla Corporation + 2004, Calum Robinson +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-scaled-font-subsets.c +Copyright: 2006, Keith Packard + 2005, 2006, Red Hat, Inc. + 2003, University of Southern California +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-spans-private.h + gfx/cairo/cairo/src/cairo-spans.c +Copyright: 2008, M Joonas Pihlaja +License: Expat + +Files: gfx/cairo/cairo/src/cairo-surface-offset.c + gfx/cairo/cairo/src/cairo-surface-wrapper.c +Copyright: 2009, Chris Wilson + 2007, Adrian Johnson + 2005, Red Hat, Inc. +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-surface-snapshot.c +Copyright: 2009, Intel Corporation + 2005, Red Hat, Inc + 2002, University of Southern California +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-svg-surface-private.h + gfx/cairo/cairo/src/cairo-svg-surface.c +Copyright: 2005-2007, Emmanuel Pacaud + 2004, 2006, Red Hat, Inc. +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-svg.h +Copyright: 2005, Emmanuel Pacaud +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-tee-surface.c +Copyright: 2009, Chris Wilson + 2005, Red Hat, Inc. +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-tor-scan-converter.c +Copyright: 2008, M Joonas Pihlaja + 2007, David Turner +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-unicode.c +Copyright: 2005, Red Hat, Inc + 1999, Tom Tromey +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-vg-surface.c +Copyright: 2009, Chris Wilson + 2008, Opened Hand Ltd +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/cairo/src/cairo-vg.h +Copyright: 2009, Chris Wilson + 2007, Mozilla Corporation +License: MPL-1.1 or LGPL-2.1 + +Files: gfx/cairo/libpixman/src/* +Copyright: 2000 Keith Packard, member of The XFree86 Project, Inc., + 2005 Lars Knoll & Zack Rusin, Trolltech + 2008 Aaron Plattner, NVIDIA Corporation + 2008 Mozilla Corporation + 1999,2004 Keith Packard + 2000 SuSE, Inc. + 2004,2005,2007,2008 Red Hat, Inc. + 2004 Nicholas Miell + 2005 Trolltech AS + 2008 Rodrigo Kumpera + 2008 André Tupinambá + 2007 Luca Barbato +License: other-3 + Permission to use, copy, modify, distribute, and sell this software and its + documentation for any purpose is hereby granted without fee, provided that + the above copyright notice appear in all copies and that both that + copyright notice and this permission notice appear in supporting + documentation, and that the name of the copyright holder not be used in + advertising or publicity pertaining to distribution of the software without + specific, written prior permission. The copyright holder makes no + representations about the suitability of this software for any purpose. It + is provided "as is" without express or implied warranty. + . + THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY + SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + SOFTWARE. + +Files: gfx/cairo/libpixman/src/pixman-arm-common.h + gfx/cairo/libpixman/src/pixman-arm-neon-asm.h +Copyright: 2009-2010, Nokia Corporation +License: Expat + +Files: gfx/cairo/libpixman/src/pixman-combine-float.c +Copyright: 2010, 2012, Soren Sandmann Pedersen + 2010, 2012, Red Hat, Inc. +License: Expat + +Files: gfx/cairo/libpixman/src/pixman-filter.c +Copyright: 2012, Soren Sandmann + 2012, Red Hat, Inc. +License: Expat + +Files: gfx/cairo/libpixman/src/pixman-glyph.c +Copyright: 2010-2012, Red Hat, Inc. + 2010, 2012, Soren Sandmann +License: Expat + +Files: gfx/cairo/libpixman/src/pixman-mips-dspr2-asm.h + gfx/cairo/libpixman/src/pixman-mips-dspr2.c + gfx/cairo/libpixman/src/pixman-mips-dspr2.h +Copyright: 2012, MIPS Technologies, Inc. +License: BSD-3-clause + +Files: gfx/cairo/libpixman/src/pixman-noop.c + gfx/cairo/libpixman/src/pixman-version.h +Copyright: 1996, 1998-1999, 2007-2009, 2011, 2013, Red Hat, Inc. +License: Expat + +Files: gfx/cairo/libpixman/src/pixman-region.c +Copyright: 1998, Keith Packard + 1987-1989, Digital Equipment Coportation + 1987-1989, The Open Group +License: other-4 + Permission to use, copy, modify, distribute, and sell this software and its + documentation for any purpose is hereby granted without fee, provided that + the above copyright notice appear in all copies and that both that + copyright notice and this permission notice appear in supporting + documentation. + . + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + . + Except as contained in this notice, the name of The Open Group shall not be + used in advertising or otherwise to promote the sale, use or other dealings + in this Software without prior written authorization from The Open Group. + . + Permission to use, copy, modify, and distribute this software and its + documentation for any purpose and without fee is hereby granted, + provided that the above copyright notice appear in all copies and that + both that copyright notice and this permission notice appear in + supporting documentation, and that the name of Digital not be + used in advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + . + DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + SOFTWARE. + +Files: gfx/cairo/libpixman/src/pixman.h +Copyright: 2007, Red Hat, Inc. + 1998, 2004, Keith Packard + 1987, Digital Equipment Corporation, Maynard, Massachusetts + 1987, 1998, The Open Group +License: other-5 + Permission to use, copy, modify, distribute, and sell this software and its + documentation for any purpose is hereby granted without fee, provided that + the above copyright notice appear in all copies and that both that + copyright notice and this permission notice appear in supporting + documentation. + . + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + . + Except as contained in this notice, the name of The Open Group shall not be + used in advertising or otherwise to promote the sale, use or other dealings + in this Software without prior written authorization from The Open Group. + . + Permission to use, copy, modify, and distribute this software and its + documentation for any purpose and without fee is hereby granted, + provided that the above copyright notice appear in all copies and that + both that copyright notice and this permission notice appear in + supporting documentation, and that the name of Digital not be + used in advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + . + DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + SOFTWARE. + +Files: gfx/gl/ForceDiscreteGPUHelperCGL.h +Copyright: The Chromium Authors +License: MPL-2.0 + +Files: gfx/graphite2/* +Copyright: 2010-2013, SIL International +License: LGPL-2.1 + +Files: gfx/graphite2/src/MozGrMalloc.h +Copyright: no-info-found +License: MPL-2.0 + +Files: gfx/harfbuzz/* +Copyright: 1998-2004 David Turner and Werner Lemberg + 2005 David Turner + 2004, 2007-2009, 2010 Red Hat, Inc. + 2006 Behdad Esfahbod + 2007 Chris Wilson + 2009 Martin Hosken and SIL International + 2009 Keith Stribley + 2010, 2012 Mozilla Foundation + 2008, 2010 Nokia Corporation and/or its subsidiary(-ies) + 2011 Codethink Limited + 2010,2011,2012 Google, Inc. +License: old-MIT + +Files: gfx/harfbuzz/src/hb-blob.cc + gfx/harfbuzz/src/hb-blob.h + gfx/harfbuzz/src/hb-face.h + gfx/harfbuzz/src/hb-font.h + gfx/harfbuzz/src/hb-ft.h + gfx/harfbuzz/src/hb-ot-layout.h + gfx/harfbuzz/src/hb-ot-shape.h + gfx/harfbuzz/src/hb-ot.h + gfx/harfbuzz/src/hb.h + gfx/harfbuzz/src/main.cc +Copyright: 1996, 1998-1999, 2007-2009, 2011, 2013, Red Hat, Inc. +License: Expat + +Files: gfx/harfbuzz/src/hb-buffer.cc + gfx/harfbuzz/src/hb-buffer.h +Copyright: 2011-2012, Google, Inc. + 2004, 2007, 2009, 2010, Red Hat, Inc. + 1998-2004, David Turner and Werner Lemberg +License: Expat + +Files: gfx/harfbuzz/src/hb-common.cc + gfx/harfbuzz/src/hb-common.h + gfx/harfbuzz/src/hb-face.cc + gfx/harfbuzz/src/hb-font.cc + gfx/harfbuzz/src/hb-glib.cc + gfx/harfbuzz/src/hb-glib.h + gfx/harfbuzz/src/hb-icu.h + gfx/harfbuzz/src/hb-ot-head-table.hh + gfx/harfbuzz/src/hb-ot-layout-gdef-table.hh + gfx/harfbuzz/src/hb-ot-layout-gpos-table.hh + gfx/harfbuzz/src/hb-ot-layout-gsub-table.hh + gfx/harfbuzz/src/hb-ot-map.cc + gfx/harfbuzz/src/hb-ot-shape.cc + gfx/harfbuzz/src/hb-ot-tag.cc + gfx/harfbuzz/src/hb-shape.cc + gfx/harfbuzz/src/hb-shape.h +Copyright: 2010-2013, Google, Inc. + 2007-2010, Red Hat, Inc. +License: Expat + +Files: gfx/harfbuzz/src/hb-coretext.cc +Copyright: 2012-2013, Mozilla Foundation + 2012-2013, Google, Inc. +License: Expat + +Files: gfx/harfbuzz/src/hb-coretext.h +Copyright: 2008-2014, Mozilla Foundation +License: Expat + +Files: gfx/harfbuzz/src/hb-ft.cc +Copyright: 2009, Red Hat, Inc. + 2009, Keith Stribley +License: Expat + +Files: gfx/harfbuzz/src/hb-graphite2.cc +Copyright: 2011, SIL International + 2011, Martin Hosken + 2011-2012, Google, Inc. +License: Expat + +Files: gfx/harfbuzz/src/hb-graphite2.h +Copyright: 2011, SIL International + 2011, Martin Hosken +License: Expat + +Files: gfx/harfbuzz/src/hb-icu.cc +Copyright: 2011, Google, Inc. + 2009, Red Hat, Inc. + 2009, Keith Stribley +License: Expat + +Files: gfx/harfbuzz/src/hb-ot-layout.cc +Copyright: 2012-2013, Google, Inc. + 2007-2009, Red Hat, Inc. + 2006, Behdad Esfahbod + 1998-2004, David Turner and Werner Lemberg +License: Expat + +Files: gfx/harfbuzz/src/hb-ucdn.cc +Copyright: 2012, Grigori Goronzy +License: ISC + +Files: gfx/harfbuzz/src/hb-unicode.cc + gfx/harfbuzz/src/hb-unicode.h +Copyright: 2011, Codethink Limited + 2010-2012, Google, Inc. + 2009, Red Hat, Inc. +License: Expat + +Files: gfx/ots/* +Copyright: 2009 The Chromium Authors +License: BSD-3-clause + +Files: gfx/ots/sync.sh +Copyright: no-info-found +License: MPL-2.0 + +Files: gfx/qcms/* +Copyright: 2009, Mozilla Foundation + 1998-2007, Marti Maria +License: Expat + +Files: gfx/qcms/chain.c + gfx/qcms/transform-altivec.c + gfx/qcms/transform.c +Copyright: 2009, Mozilla Corporation + 1998-2007, Marti Maria +License: Expat + +Files: gfx/qcms/qcms.h +Copyright: 1994-1996, SunSoft, Inc. +License: Expat + +Files: gfx/thebes/gfxScriptItemizer.cpp + gfx/thebes/gfxScriptItemizer.h +Copyright: 1995-2009, International Business Machines (IBM) +License: MPL-2.0 or Expat + +Files: gfx/ycbcr/* +Copyright: 2006-2008 The Chromium Authors +License: BSD-3-clause + +Files: gfx/ycbcr/YCbCrUtils.cpp + gfx/ycbcr/YCbCrUtils.h + gfx/ycbcr/chromium_types.h + gfx/ycbcr/ycbcr_to_rgb565.cpp +Copyright: no-info-found +License: MPL-2.0 + +Files: intl/icu/source/tools/tzcode/* + intl/icu/source/tools/tzcode/zic.c +Copyright: no-info-found +License: public-domain + +Files: intl/unicharutil/util/nsBidiUtils.cpp + intl/unicharutil/util/nsUnicharUtils.h +Copyright: 2000-2002, Japan Network Information Center +License: MPL-2.0 or BSD-3-clause + +Files: intl/unicharutil/util/nsUnicodePropertyData.cpp + intl/unicharutil/util/nsUnicodeScriptCodes.h +Copyright: 1991-2014, Unicode, Inc. +License: MPL-2.0 + +Files: ipc/chromium/* +Copyright: 2006-2008 The Chromium Authors +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/* +Copyright: 2007-2012, Niels Provos and Nick Mathewson + 2000-2009, Niels Provos +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/* +Copyright: 2000-2002 Niels Provos +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/WIN32-Code/tree.h +Copyright: 2002, Niels Provos +License: BSD-2-clause + +Files: ipc/chromium/src/third_party/libevent/arc4random.c +Copyright: 2010-2012, Niels Provos and Nick Mathewson + 2010, Chris Davis, Niels Provos, and Nick Mathewson + 2008, Damien Miller + 1996, David Mazieres +License: ISC + +Files: ipc/chromium/src/third_party/libevent/buffer_iocp.c + ipc/chromium/src/third_party/libevent/bufferevent-internal.h + ipc/chromium/src/third_party/libevent/bufferevent_async.c + ipc/chromium/src/third_party/libevent/bufferevent_openssl.c + ipc/chromium/src/third_party/libevent/changelist-internal.h + ipc/chromium/src/third_party/libevent/defer-internal.h + ipc/chromium/src/third_party/libevent/evmap-internal.h + ipc/chromium/src/third_party/libevent/evmap.c + ipc/chromium/src/third_party/libevent/evthread_pthread.c + ipc/chromium/src/third_party/libevent/evthread_win32.c + ipc/chromium/src/third_party/libevent/evutil.c + ipc/chromium/src/third_party/libevent/evutil_rand.c + ipc/chromium/src/third_party/libevent/iocp-internal.h + ipc/chromium/src/third_party/libevent/ipv6-internal.h + ipc/chromium/src/third_party/libevent/mm-internal.h + ipc/chromium/src/third_party/libevent/ratelim-internal.h + ipc/chromium/src/third_party/libevent/util-internal.h +Copyright: 2007-2012, Niels Provos and Nick Mathewson +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/bufferevent.c + ipc/chromium/src/third_party/libevent/epoll.c +Copyright: 2007-2012, Niels Provos, Nick Mathewson + 2000-2007, Niels Provos +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/bufferevent_pair.c + ipc/chromium/src/third_party/libevent/event_iocp.c + ipc/chromium/src/third_party/libevent/evthread-internal.h + ipc/chromium/src/third_party/libevent/evthread.c + ipc/chromium/src/third_party/libevent/listener.c +Copyright: 2008-2012, Niels Provos, Nick Mathewson +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/compat/* +Copyright: 1991, 1993, University of California +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/evdns.c +Copyright: 2007-2012, Nick Mathewson and Niels Provos + 2006-2007, Niels Provos +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/evport.c +Copyright: 2007-2012, Niels Provos and Nick Mathewson + 2007, Sun Microsystems + 2006-2007, Niels Provos +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/include/event2/buffer.h + ipc/chromium/src/third_party/libevent/include/event2/buffer_compat.h + ipc/chromium/src/third_party/libevent/include/event2/bufferevent_ssl.h + ipc/chromium/src/third_party/libevent/include/event2/thread.h + ipc/chromium/src/third_party/libevent/include/event2/util.h +Copyright: 2007-2012, Niels Provos and Nick Mathewson +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/include/event2/bufferevent_compat.h +Copyright: 2007-2012, Niels Provos, Nick Mathewson + 2000-2007, Niels Provos +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/include/event2/dns.h +Copyright: 2007-2012, Niels Provos and Nick Mathewson + 2006-2007, Niels Provos +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/log.c +Copyright: 2005-2012, Niels Provos and Nick Mathewson + 2000, Dug Song + 1993, University of California +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/minheap-internal.h +Copyright: 2007-2012, Niels Provos and Nick Mathewson + 2006, Maxim Yegorushkin +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/strlcpy.c +Copyright: 1998, Todd C. Miller +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/test/* +Copyright: 2007-2012, Niels Provos and Nick Mathewson +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/test/bench.c + ipc/chromium/src/third_party/libevent/test/regress.c + ipc/chromium/src/third_party/libevent/test/regress.h + ipc/chromium/src/third_party/libevent/test/regress_buffer.c + ipc/chromium/src/third_party/libevent/test/regress_bufferevent.c + ipc/chromium/src/third_party/libevent/test/regress_dns.c + ipc/chromium/src/third_party/libevent/test/regress_http.c + ipc/chromium/src/third_party/libevent/test/regress_main.c + ipc/chromium/src/third_party/libevent/test/regress_rpc.c + ipc/chromium/src/third_party/libevent/test/test-eof.c + ipc/chromium/src/third_party/libevent/test/test-init.c + ipc/chromium/src/third_party/libevent/test/test-time.c + ipc/chromium/src/third_party/libevent/test/test-weof.c +Copyright: 2007-2012, Niels Provos and Nick Mathewson + 2000-2009, Niels Provos +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/test/regress_util.c +Copyright: 2009-2012, Nick Mathewson and Niels Provos +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/test/tinytest.c + ipc/chromium/src/third_party/libevent/test/tinytest.h + ipc/chromium/src/third_party/libevent/test/tinytest_macros.h +Copyright: 2009-2012, Nick Mathewson +License: BSD-3-clause + +Files: ipc/chromium/src/third_party/libevent/win32select.c +Copyright: 2007-2012, Niels Provos and Nick Mathewson + 2003, Michael A. Davis + 2000-2007, Niels Provos +License: BSD-3-clause + +Files: ipc/glue/StringUtil.cpp +Copyright: 2006-2008, The Chromium Authors. +License: MPL-2.0 + +Files: ipc/ipdl/test/cxx/IPDLUnitTestProcessChild.cpp + ipc/ipdl/test/cxx/IPDLUnitTestProcessChild.h + ipc/ipdl/test/cxx/IPDLUnitTestSubprocess.cpp + ipc/ipdl/test/cxx/IPDLUnitTestSubprocess.h + ipc/ipdl/test/cxx/IPDLUnitTestTypes.h + ipc/ipdl/test/cxx/IPDLUnitTests.h + ipc/ipdl/test/cxx/TestHighestPrio.cpp + ipc/ipdl/test/cxx/genIPDLUnitTests.py + ipc/ipdl/test/cxx/app/* +Copyright: no-info-found +License: MPL-2.0 + +Files: js/src/builtin/embedjs.py +Copyright: 2012, the V8 project authors +License: MPL-2.0 or BSD-3-clause + +Files: js/src/ctypes/libffi/ltmain.sh +Copyright: 1996-2001, 2003-2006, Free Software Foundation +License: GPL-2+ + +Files: js/src/ctypes/libffi/msvcc.sh +Copyright: 2009, Daniel Witte +License: MPL-1.1 or GPL-2 or LGPL-2.1 + +Files: js/src/ctypes/libffi/src/* +Copyright: 2011-2013, Anthony Green + 1996-2004, 2007, 2008, Red Hat, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/aarch64/* +Copyright: 2009-2012, ARM Ltd. +License: Expat + +Files: js/src/ctypes/libffi/src/arc/* +Copyright: 2013, Synopsys, Inc. (www.synopsys.com) + 2012, Anthony Green +License: Expat + +Files: js/src/ctypes/libffi/src/arc/ffi.c +Copyright: 2013, Synopsys, Inc. (www.synopsys.com) +License: Expat + +Files: js/src/ctypes/libffi/src/arm/* +Copyright: 2012, Anthony Green + 2010, CodeSourcery + 1996-2003, Red Hat, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/arm/ffi.c +Copyright: 2011, Timothy Wall + 2011, Plausible Labs Cooperative, Inc. + 2011, Free Software Foundation + 2011, Anthony Green + 1998, 2008, 2011, Red Hat, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/arm/gentramp.sh +Copyright: 2010, Plausible Labs Cooperative, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/avr32/* +Copyright: 2011-2012, Anthony Green + 2009, Bradley Smith +License: Expat + +Files: js/src/ctypes/libffi/src/bfin/* +Copyright: 2012, Alexandre K. I. de Mendonca +License: Expat + +Files: js/src/ctypes/libffi/src/closures.c +Copyright: 2011, Plausible Labs Cooperative, Inc + 2007, 2009-2010, Red Hat, Inc + 2007, 2009-2010, Free Software Foundation, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/cris/ffi.c +Copyright: 2007, Free Software Foundation, Inc. + 2005, Axis Communications AB + 2004, Simon Posnjak + 1998, Cygnus Solutions +License: Expat + +Files: js/src/ctypes/libffi/src/debug.c + js/src/ctypes/libffi/src/java_raw_api.c + js/src/ctypes/libffi/src/raw_api.c + js/src/ctypes/libffi/src/types.c +Copyright: 1996, 1998, 1999, 2007-2009, 2011, 2013, Red Hat, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/frv/ffi.c +Copyright: 2008, Red Hat, Inc. + 2007, Free Software Foundation, Inc. + 2004, Anthony Green +License: Expat + +Files: js/src/ctypes/libffi/src/ia64/ffi.c +Copyright: 2011, Anthony Green + 2000, Hewlett Packard Company + 1998, 2007, 2008, 2012, Red Hat, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/ia64/ia64_flags.h +Copyright: 2000, Hewlett Packard Company +License: Expat + +Files: js/src/ctypes/libffi/src/m32r/* +Copyright: 2008, Red Hat, Inc. + 2004, Renesas Technology +License: Expat + +Files: js/src/ctypes/libffi/src/m32r/ffitarget.h +Copyright: 2012, Anthony Green + 2004, Renesas Technology +License: Expat + +Files: js/src/ctypes/libffi/src/m88k/* +Copyright: 2013, Miodrag Vallat. +License: Expat + +Files: js/src/ctypes/libffi/src/metag/* +Copyright: 2013, Imagination Technologies Ltd. +License: Expat + +Files: js/src/ctypes/libffi/src/metag/ffi.c +Copyright: 2013, Imagination Technologies +License: Expat + +Files: js/src/ctypes/libffi/src/microblaze/* +Copyright: 2012, 2013, Xilinx, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/mips/ffi.c +Copyright: 2011, Anthony Green + 2008, David Daney + 1996, 2007, 2008, 2011, Red Hat, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/moxie/* +Copyright: 2012, 2013, Anthony Green +License: Expat + +Files: js/src/ctypes/libffi/src/nios2/* +Copyright: 2013, Mentor Graphics +License: Expat + +Files: js/src/ctypes/libffi/src/pa/ffi.c +Copyright: 2011, Anthony Green + 2008, Red Hat, Inc. + 2006, Free Software Foundation, Inc. + 2003, 2004, Randolph Chung +License: Expat + +Files: js/src/ctypes/libffi/src/powerpc/* +Copyright: 2013, IBM + 2011, Kyle Moffett + 2011, Anthony Green + 2008, Red Hat, Inc. + 2007, 2008, Free Software Foundation, Inc. + 1998, Geoffrey Keating +License: Expat + +Files: js/src/ctypes/libffi/src/powerpc/asm.h +Copyright: 1998, Geoffrey Keating +License: Expat + +Files: js/src/ctypes/libffi/src/powerpc/ffi_darwin.c +Copyright: 2002, 2006, 2007-2009-2010, Free Software Foundation, Inc. + 2001, John Hornkvist + 1998, Geoffrey Keating +License: Expat + +Files: js/src/ctypes/libffi/src/powerpc/ffitarget.h +Copyright: 2012, Anthony Green + 2007-2008, 2010, Free Software Foundation, Inc. + 1996-2003, 2010, Red Hat, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/s390/ffi.c +Copyright: 2008, Red Hat, Inc. + 2000-2007, Software AG +License: Expat + +Files: js/src/ctypes/libffi/src/sh/ffi.c +Copyright: 2008, Red Hat, Inc. + 2002-2008, 2012, Kaz Kojima +License: Expat + +Files: js/src/ctypes/libffi/src/sh64/ffi.c +Copyright: 2008, Anthony Green + 2003, 2004, 2006-2007, 2012, Kaz Kojima +License: Expat + +Files: js/src/ctypes/libffi/src/tile/* +Copyright: 2012, Tilera Corp +License: Expat + +Files: js/src/ctypes/libffi/src/vax/* +Copyright: 2013, Miodrag Vallat. +License: Expat + +Files: js/src/ctypes/libffi/src/x86/* +Copyright: 2012, Anthony Green + 2007, 2008, 2010, Free Software Foundation, Inc. + 1996-2003, 2010, Red Hat, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/x86/ffi.c +Copyright: 2008, 2010, Free Software Foundation, Inc. + 2002, Roger Sayle + 2002, Ranjit Mathew + 2002, Bo Thorsen + 1996, 1998-1999, 2001, 2007-2008, Red Hat, Inc. +License: Expat + +Files: js/src/ctypes/libffi/src/x86/ffi64.c +Copyright: 2013, The Written Word, Inc. + 2011, Anthony Green + 2008, 2010, Red Hat, Inc. + 2002, 2007, Bo Thorsen +License: Expat + +Files: js/src/ctypes/libffi/src/xtensa/* +Copyright: 2013, Tensilica, Inc. +License: Expat + +Files: js/src/ctypes/libffi/texinfo.tex +Copyright: 1985-1986, 1988, 1990-1995, +License: GPL-3 + +Files: js/src/devtools/rootAnalysis/analyze.py + js/src/devtools/vprof/testVprofMT.c + js/src/jit/BacktrackingAllocator.h +Copyright: no-info-found +License: MPL-2.0 + +Files: js/src/editline/* +Copyright: 1992-1993, Simmule Turner and Rich Salz +License: MPL-2.0 + +Files: js/src/irregexp/* +Copyright: 2006-2014, the V8 project authors +License: BSD-3-clause + +Files: js/src/jit/ExecutableAllocator.cpp + js/src/jit/ExecutableAllocator.h +Copyright: 2006-2009, 2012, Apple Inc. +License: BSD-2-clause + +Files: js/src/jit/arm/Simulator-arm.cpp + js/src/jit/arm/Simulator-arm.h + js/src/octane/* +Copyright: 2006-2014, the V8 project authors +License: BSD-3-clause + +Files: js/src/octane/code-load.js +Copyright: 2013, the Octane Benchmark project authors + 2012, The Closure Library Authors + 2012, John Resig, http://jquery.com +License: Apache-2.0 or BSD-3-clause or Expat + +Files: js/src/octane/deltablue.js +Copyright: 2008, the V8 project authors + 1996, John Maloney and Mario Wolczko +License: GPL-2+ + +Files: js/src/octane/gbemu-part1.js + js/src/octane/gbemu-part2.js +Copyright: 2013, Google, Inc. + 2010-2012, Grant Galitz +License: GPL-2 + +Files: js/src/octane/mandreel.js +Copyright: 2012, Onan Games + 2012, Google, Inc.F +License: BSD-3-clause + +Files: js/src/octane/navier-stokes.js +Copyright: 2013, the V8 project authors + 2009, Oliver Hunt +License: Expat + +Files: js/src/octane/typescript.js +Copyright: 2013, the Octane Benchmark project authors +License: BSD-3-clause + +Files: js/src/tests/lib/jittests.py + js/src/tests/shell/shell.js + js/src/tests/test262/browser.js + js/src/tests/test262/intl402/shell.js + js/src/vtune/VTuneWrapper.h + js/xpconnect/tests/unit/component-blob.js + js/xpconnect/tests/unit/component-file.js + js/xpconnect/tests/unit/component_import.js + js/xpconnect/tests/unit/head_watchdog.js + js/xpconnect/tests/unit/test_attributes.js + js/xpconnect/tests/unit/test_blob.js + js/xpconnect/tests/unit/test_blob2.js + js/xpconnect/tests/unit/test_bogus_files.js + js/xpconnect/tests/unit/test_bug1021312.js + js/xpconnect/tests/unit/test_bug408412.js + js/xpconnect/tests/unit/test_bug451678.js + js/xpconnect/tests/unit/test_bug780370.js + js/xpconnect/tests/unit/test_bug809652.js + js/xpconnect/tests/unit/test_bug809674.js + js/xpconnect/tests/unit/test_bug813901.js + js/xpconnect/tests/unit/test_bug867486.js + js/xpconnect/tests/unit/test_bug976151.js + js/xpconnect/tests/unit/test_bug_442086.js + js/xpconnect/tests/unit/test_file.js + js/xpconnect/tests/unit/test_file2.js + js/xpconnect/tests/unit/test_import.js + js/xpconnect/tests/unit/test_js_weak_references.js + js/xpconnect/tests/unit/test_nuke_sandbox.js + js/xpconnect/tests/unit/test_params.js + js/xpconnect/tests/unit/test_recursive_import.js + js/xpconnect/tests/unit/test_reflect_parse.js + js/xpconnect/tests/unit/test_returncode.js + js/xpconnect/tests/unit/test_sandbox_metadata.js + js/xpconnect/tests/unit/test_tearoffs.js + js/xpconnect/tests/unit/test_unload.js + js/xpconnect/tests/unit/test_watchdog_default.js + js/xpconnect/tests/unit/test_watchdog_disable.js + js/xpconnect/tests/unit/test_watchdog_enable.js + js/xpconnect/tests/unit/test_watchdog_hibernate.js + js/xpconnect/tests/unit/test_watchdog_toggle.js + js/xpconnect/tests/unit/test_xpcomutils.js + layout/base/tests/marionette/* + layout/reftests/border-image/* + layout/reftests/svg/* + layout/reftests/svg/smil/smil-grid.js + layout/reftests/table-dom/* + layout/reftests/w3c-css/* + media/libcubeb/include/* + media/libcubeb/src/cubeb_osx_run_loop.c +Copyright: no-info-found +License: MPL-2.0 + +Files: js/src/tests/test262/intl402/browser.js +Copyright: 2012, Mozilla Corporation +License: MPL-2.0 + +Files: js/src/vtune/* +Copyright: 2005-2013, Intel Corporation +License: BSD-3-clause or GPL-2 + +Files: layout/base/nsFrameManager.cpp + layout/base/nsFrameManager.h + layout/generic/nsLineLayout.h + layout/style/nsHTMLStyleSheet.cpp +Copyright: 2000, International Business Machines (IBM) +License: MPL-2.0 + +Files: layout/reftests/fonts/mark-generate.py + layout/reftests/fonts/math/* +Copyright: 2008, Mozilla Corporation +License: MPL-2.0 + +Files: media/gmp-clearkey/0.1/WMFH264Decoder.cpp + media/gmp-clearkey/0.1/WMFH264Decoder.h + media/gmp-clearkey/0.1/WMFUtils.cpp + media/gmp-clearkey/0.1/WMFUtils.h +Copyright: 2012-2014, Mozilla Foundation and contributors +License: Apache-2.0 + +Files: media/gmp-clearkey/0.1/openaes/* +Copyright: 2012-2013, Nabil S. Al Ramli, www.nalramli.com +License: BSD-2-clause + +Files: media/kiss_fft/_kiss_fft_guts.h + media/kiss_fft/kiss_fft.c + media/kiss_fft/kiss_fftr.c +Copyright: 2003-2010, Mark Borgerding +License: BSD-3-clause + +Files: media/libcubeb/src/android/* + media/libcubeb/src/audiotrack_definitions.h +Copyright: 2005-2013, The Android Open Source Project +License: Apache-2.0 + +Files: media/libnestegg/* +Copyright: 2010 Mozilla Foundation +License: ISC + +Files: media/libnestegg/src/* +Copyright: 2004-2010, Alex Pankratov +License: BSD-3-clause + +Files: media/libogg/* +Copyright: 2002-2007 Xiph.org Foundation +License: BSD-3-clause + +Files: media/libopus/celt/* +Copyright: 2007-2009, Xiph.Org Foundation + 2007-2008, CSIRO +License: BSD-2-clause + +Files: media/libopus/celt/_kiss_fft_guts.h +Copyright: 2003, 2004, Mark Borgerding +License: BSD-2-clause + +Files: media/libopus/celt/arch.h + media/libopus/celt/fixed_generic.h + media/libopus/celt/mathops.c + media/libopus/celt/mathops.h +Copyright: 2007-2009, Xiph.Org Foundation + 2007-2008, CSIRO + 2002-2008, Jean-Marc Valin +License: BSD-2-clause + +Files: media/libopus/celt/arm/* +Copyright: 2013, Parrot + 2010, Xiph.Org Foundation +License: BSD-2-clause + +Files: media/libopus/celt/arm/fixed_armv4.h + media/libopus/celt/arm/kiss_fft_armv4.h + media/libopus/celt/arm/kiss_fft_armv5e.h +Copyright: 2013, Xiph.Org Foundation and contributors +License: BSD-2-clause + +Files: media/libopus/celt/arm/fixed_armv5e.h +Copyright: 2013, Parrot + 2007-2009, Xiph.Org Foundation + 2007-2008, CSIRO + 2003-2008, Jean-Marc Valin +License: BSD-2-clause + +Files: media/libopus/celt/bands.c + media/libopus/celt/bands.h + media/libopus/celt/celt.c + media/libopus/celt/celt.h + media/libopus/celt/celt_decoder.c + media/libopus/celt/celt_encoder.c + media/libopus/celt/modes.c + media/libopus/celt/modes.h +Copyright: 2008-2012, Gregory Maxwell + 2007-2010, Xiph.Org Foundation + 2007-2008, CSIRO +License: BSD-2-clause + +Files: media/libopus/celt/celt_lpc.c + media/libopus/celt/celt_lpc.h +Copyright: 1994-2002, 2009-2012, Xiph.Org Foundation +License: BSD-2-clause + +Files: media/libopus/celt/cpu_support.h +Copyright: 2013, Parrot + 2010, Xiph.Org Foundation +License: BSD-2-clause + +Files: media/libopus/celt/cwrs.c + media/libopus/celt/cwrs.h +Copyright: 2007-2009, Xiph.Org Foundation + 2007-2009, Timothy B. Terriberry + 2007-2008, CSIRO +License: BSD-2-clause + +Files: media/libopus/celt/ecintrin.h + media/libopus/celt/entcode.h + media/libopus/celt/entdec.c + media/libopus/celt/entdec.h + media/libopus/celt/entenc.c + media/libopus/celt/entenc.h + media/libopus/celt/mfrngcod.h +Copyright: 2008-2009, Xiph.Org Foundation + 2001-2011, Timothy B. Terriberry +License: BSD-2-clause + +Files: media/libopus/celt/entcode.c +Copyright: 2001-2011, Timothy B. Terriberry +License: BSD-2-clause + +Files: media/libopus/celt/fixed_debug.h + media/libopus/celt/stack_alloc.h +Copyright: 2007-2012, Xiph.Org Foundation + 2002-2008, Jean-Marc Valin +License: BSD-2-clause + +Files: media/libopus/celt/float_cast.h +Copyright: 2001, Erik de Castro Lopo +License: BSD-2-clause + +Files: media/libopus/celt/kiss_fft.c + media/libopus/celt/kiss_fft.h +Copyright: 2008, Xiph.Org Foundation, CSIRO + 2005-2007, Xiph.Org Foundation + 2003-2004, Mark Borgerding +License: BSD-2-clause + +Files: media/libopus/celt/os_support.h +Copyright: 2007, Jean-Marc Valin +License: BSD-2-clause + +Files: media/libopus/celt/x86/* +Copyright: 2013, Jean-Marc Valin and John Ridges +License: BSD-2-clause + +Files: media/libopus/include/* +Copyright: 1994-2002, 2009-2012, Xiph.Org Foundation +License: BSD-2-clause + +Files: media/libopus/include/opus.h + media/libopus/include/opus_defines.h +Copyright: 2010, 2011, Xiph.Org Foundation, Skype Limited +License: BSD-2-clause + +Files: media/libopus/include/opus_custom.h +Copyright: 2008-2012, Gregory Maxwell + 2007-2010, Xiph.Org Foundation + 2007-2008, CSIRO +License: BSD-2-clause + +Files: media/libopus/silk/* +Copyright: 2006-2011, Skype Limited +License: BSD-2-clause + +Files: media/libopus/silk/MacroDebug.h +Copyright: 2012, Xiph.Org Foundation + 2006-2011, Skype Limited +License: BSD-2-clause + +Files: media/libopus/silk/arm/* +Copyright: 2013, Parrot + 2006-2011, Skype Limited +License: BSD-2-clause + +Files: media/libopus/silk/arm/SigProc_FIX_armv4.h +Copyright: 2013, Xiph.Org Foundation and contributors + 2013, Parrot +License: BSD-2-clause + +Files: media/libopus/silk/arm/macros_armv4.h +Copyright: 2013, Xiph.Org Foundation and contributors +License: BSD-2-clause + +Files: media/libopus/src/* +Copyright: 1994-2002, 2009-2012, Xiph.Org Foundation +License: BSD-2-clause + +Files: media/libopus/src/mlp.c + media/libopus/src/mlp.h +Copyright: 2008-2011, Octasic Inc. +License: BSD-2-clause + +Files: media/libopus/src/opus.c + media/libopus/src/opus_decoder.c + media/libopus/src/opus_encoder.c +Copyright: 2010, 2011, Xiph.Org Foundation, Skype Limited +License: BSD-2-clause + +Files: media/libpng/* +Copyright: 1998-2014, Glenn Randers-Pehrson + 1996-1997, Andreas Dilger + 1995-1996, Guy Eric Schalnat, Group 42, Inc. +License: libpng + +Files: media/libpng/arm/* +Copyright: 2014, Glenn Randers-Pehrson +License: libpng + +Files: media/libpng/pnglibconf.h +Copyright: no-info-found +License: MPL-2.0 + +Files: media/libsoundtouch/src/* +Copyright: Olli Parviainen +License: LGPL-2.1+ + +Files: media/libspeex_resampler/src/* +Copyright: 2002, 2003, 2007, Jean-Marc Valin +License: BSD-3-clause + +Files: media/libspeex_resampler/src/resample.c + media/libspeex_resampler/src/resample_sse.c +Copyright: 2008, Thorvald Natvig + 2007-2008, Jean-Marc Valin +License: BSD-3-clause + +Files: media/libspeex_resampler/src/resample_neon.c +Copyright: 2011, Texas Instruments + 2008, Thorvald Natvig + 2007-2008, Jean-Marc Valin +License: BSD-3-clause + +Files: media/libspeex_resampler/src/simd_detect.cpp + media/libspeex_resampler/src/simd_detect.h + media/libvpx/update.py +Copyright: no-info-found +License: MPL-2.0 + +Files: media/libtheora/* +Copyright: 2002-2007 Xiph.org Foundation +License: BSD-3-clause + +Files: media/libvorbis/* +Copyright: 2002-2007 Xiph.org Foundation +License: BSD-3-clause + +Files: media/libvpx/* +Copyright: 2010 Google Inc. +License: BSD-3-clause + +Files: media/mtransport/nr_socket_prsock.cpp +Copyright: 2007, Adobe Systems, Incorporated + 2001-2003, 2006, Network Resonance, Inc. +License: MPL-2.0 or BSD-3-clause + +Files: media/mtransport/nr_socket_prsock.h + media/mtransport/nricectx.cpp + media/mtransport/nricectx.h + media/mtransport/nricemediastream.cpp + media/mtransport/nricemediastream.h + media/mtransport/nriceresolver.cpp + media/mtransport/nriceresolver.h + media/mtransport/nriceresolverfake.cpp + media/mtransport/nriceresolverfake.h + media/mtransport/transportlayerice.cpp +Copyright: 2007, Adobe Systems, Incorporated +License: MPL-2.0 or BSD-3-clause + +Files: media/mtransport/nr_timer.cpp +Copyright: 2004, 2006, Network Resonance, Inc. +License: MPL-2.0 or BSD-2-clause + +Files: media/mtransport/test/gtest_utils.h +Copyright: 2004-2008, Google Inc. +License: MPL-2.0 or BSD-3-clause + +Files: media/mtransport/test/stunserver.cpp +Copyright: 2007, Adobe Systems, Incorporated + 2001-2003, 2006, Network Resonance, Inc. +License: MPL-2.0 or BSD-3-clause + +Files: media/mtransport/test/turn_unittest.cpp +Copyright: 2007, Adobe Systems, Incorporated +License: MPL-2.0 or BSD-3-clause + +Files: media/mtransport/third_party/nICEr/* +Copyright: 2007, Adobe Systems, Incorporated +License: BSD-3-clause + +Files: media/mtransport/third_party/nICEr/src/net/* + media/mtransport/third_party/nICEr/src/stun/nr_socket_buffered_stun.c + media/mtransport/third_party/nICEr/src/stun/nr_socket_buffered_stun.h + media/mtransport/third_party/nICEr/src/stun/turn_client_ctx.c + media/mtransport/third_party/nICEr/src/stun/turn_client_ctx.h +Copyright: 2013, Mozilla + 2007, Adobe Systems, Incorporated +License: BSD-3-clause + +Files: media/mtransport/third_party/nICEr/src/net/nr_socket.c + media/mtransport/third_party/nICEr/src/net/nr_socket.h + media/mtransport/third_party/nICEr/src/net/nr_socket_local.h + media/mtransport/third_party/nICEr/src/net/transport_addr.c + media/mtransport/third_party/nICEr/src/net/transport_addr.h + media/mtransport/third_party/nICEr/src/net/transport_addr_reg.c + media/mtransport/third_party/nICEr/src/net/transport_addr_reg.h +Copyright: 2007, Adobe Systems, Incorporated +License: BSD-3-clause + +Files: media/mtransport/third_party/nrappkit/* +Copyright: 2001-2007, Network Resonance, Inc. +License: BSD-2-clause + +Files: media/mtransport/third_party/nrappkit/src/log/* +Copyright: 2002-2003, 2006, Network Resonance, Inc. + 1999-2001, RTFM, Inc +License: BSD-2-clause + +Files: media/mtransport/third_party/nrappkit/src/port/generic/* +Copyright: 1991, 1993, University of California +License: BSD-3-clause + +Files: media/mtransport/third_party/nrappkit/src/util/libekr/* +Copyright: 2002, 2003, 2006, Network Resonance, Inc + 1999, 2000, RTFM, Inc. +License: BSD-4-clause + +Files: media/mtransport/third_party/nrappkit/src/util/libekr/r_assoc.c + media/mtransport/third_party/nrappkit/src/util/libekr/r_assoc.h + media/mtransport/third_party/nrappkit/src/util/libekr/r_thread.h +Copyright: 2002, 2003, 2006, Network Resonance, Inc. + 1999-2001, RTFM, Inc. +License: BSD-2-clause + +Files: media/mtransport/third_party/nrappkit/src/util/libekr/r_crc32.c +Copyright: 2003, RTFM, Inc. + 2002-2003, 2006, Network Resonance, Inc. +License: BSD-2-clause + +Files: media/mtransport/third_party/nrappkit/src/util/libekr/r_memory.c + media/mtransport/third_party/nrappkit/src/util/libekr/r_memory.h +Copyright: 2001-2007, Network Resonance, Inc. +License: BSD-2-clause + +Files: media/webrtc/signaling/src/media-conduit/VideoTypes.h + media/webrtc/signaling/src/media-conduit/WebrtcGmpVideoCodec.h +Copyright: 2012, The WebRTC project authors +License: MPL-2.0 + +Files: media/webrtc/trunk/webrtc/modules/audio_device/linux/alsasymboltable_linux.cc + media/webrtc/trunk/webrtc/modules/audio_device/linux/alsasymboltable_linux.h + media/webrtc/trunk/webrtc/modules/audio_device/linux/pulseaudiosymboltable_linux.cc + media/webrtc/trunk/webrtc/modules/audio_device/linux/pulseaudiosymboltable_linux.h +Copyright: 1999-2013, Google Inc. +License: BSD-3-clause + +Files: media/webrtc/trunk/webrtc/modules/audio_device/mac/portaudio/* +Copyright: 1999-2000, Ross Bencina and Phil Burk +License: Expat + +Files: media/webrtc/trunk/webrtc/modules/audio_device/opensl/* + media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_device_info.cc + media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_device_info.h + media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_device_info_null.cc + media/webrtc/trunk/webrtc/modules/desktop_capture/mac/desktop_device_info_mac.h + media/webrtc/trunk/webrtc/modules/desktop_capture/win/desktop_device_info_win.cc + media/webrtc/trunk/webrtc/modules/desktop_capture/win/desktop_device_info_win.h + media/webrtc/trunk/webrtc/modules/desktop_capture/win/win_shared.cc + media/webrtc/trunk/webrtc/modules/desktop_capture/win/win_shared.h + media/webrtc/trunk/webrtc/modules/video_capture/windows/BaseFilter.cpp + media/webrtc/trunk/webrtc/modules/video_capture/windows/BaseFilter.h + media/webrtc/trunk/webrtc/modules/video_capture/windows/BaseInputPin.cpp + media/webrtc/trunk/webrtc/modules/video_capture/windows/BaseInputPin.h + media/webrtc/trunk/webrtc/modules/video_capture/windows/BasePin.cpp + media/webrtc/trunk/webrtc/modules/video_capture/windows/BasePin.h + media/webrtc/trunk/webrtc/modules/video_capture/windows/DShowTools.h + media/webrtc/trunk/webrtc/modules/video_capture/windows/MediaType.cpp + media/webrtc/trunk/webrtc/modules/video_capture/windows/MediaType.h +Copyright: no-info-found +License: MPL-2.0 + +Files: media/webrtc/trunk/webrtc/modules/audio_processing/test/android/* +Copyright: 2005-2013, The Android Open Source Project +License: Apache-2.0 + +Files: mfbt/decimal/* +Copyright: 2005-2006, 2008-2013, Google Inc. +License: BSD-3-clause + +Files: mfbt/decimal/moz-decimal-utils.h +Copyright: no-info-found +License: MPL-2.0 + +Files: mfbt/double-conversion/* +Copyright: 2006-2014, the V8 project authors +License: BSD-3-clause + +Files: mfbt/lz4.c + mfbt/lz4.h +Copyright: 2011-2014, Yann Collet +License: BSD-2-clause + +Files: mobile/android/stumbler/java/org/mozilla/mozstumbler/service/utils/PersistentIntentService.java + mobile/android/thirdparty/ch/boye/httpclientandroidlib/androidextra/Base64.java + mobile/android/thirdparty/com/squareup/picasso/LruCache.java +Copyright: 2005-2013, The Android Open Source Project +License: Apache-2.0 + +Files: mobile/android/thirdparty/* +Copyright: no-info-found +License: Apache-2.0 + +Files: mobile/android/thirdparty/ch/boye/httpclientandroidlib/annotation/package-info.java +Copyright: 2005, Brian Goetz and Tim Peierls +License: Apache-2.0 + +Files: mobile/android/thirdparty/com/* +Copyright: 2007-2008, 2010, 2012, Google Inc +License: Apache-2.0 + +Files: mobile/android/thirdparty/com/squareup/* +Copyright: 2013, 2014, Square, Inc. +License: Apache-2.0 + +Files: mobile/android/thirdparty/org/lucasr/* +Copyright: 2014, Lucas Rocha +License: Apache-2.0 + +Files: modules/brotli/* +Copyright: 2013, 2014, Google Inc. +License: Apache-2.0 + +Files: modules/freetype2/* +Copyright: various contributors +License: GPL-2+ + +Files: modules/freetype2/builds/unix/* +Copyright: 1996-2014, Free Software Foundation, Inc +License: GPL-2+ + +Files: modules/freetype2/src/bdf/bdf.h +Copyright: 2001-2004, 2011, Francesco Zappa Nardelli + 2000, Computing Research Labs, New Mexico State University +License: Expat + +Files: modules/freetype2/src/bdf/bdferror.h +Copyright: 2001-2002, 2012, Francesco Zappa Nardelli +License: Expat + +Files: modules/freetype2/src/bdf/bdflib.c +Copyright: 2001-2014, Francesco Zappa Nardelli + 2000, Computing Research Labs, New Mexico State University +License: Expat + +Files: modules/freetype2/src/gzip/* +Copyright: 1995-2013, Mark Adler +License: Zlib + +Files: modules/freetype2/src/gzip/inftrees.c +Copyright: 1995-2013, Mark Adler +License: Zlib + +Files: modules/freetype2/src/gzip/zutil.c + modules/freetype2/src/gzip/zutil.h +Copyright: 1995-2013, Jean-loup Gailly +License: Zlib + +Files: modules/freetype2/src/gzip/zlib.h +Copyright: 1995-2013, Jean-loup Gailly and Mark Adler +License: Zlib + +Files: modules/freetype2/src/pcf/* +Copyright: 2000-2014, by David Turner +License: Expat + +Files: modules/freetype2/src/tools/ftrandom/* +Copyright: 2005, 2007-2008, 2013, George Williams +License: BSD-3-clause + +Files: modules/libjar/test/unit/test_bug333423.js + modules/libjar/test/unit/test_bug597702.js + modules/libjar/test/unit/test_bug637286.js + modules/libjar/test/unit/test_corrupt_536911.js + modules/libjar/test/unit/test_corrupt_541828.js + modules/libjar/test/unit/test_dirjar_bug525755.js + modules/libjar/test/unit/test_jarinput_stream_zipreader_reference.js + modules/zlib/src/mozzconf.h +Copyright: no-info-found +License: MPL-2.0 + +Files: modules/zlib/* +Copyright: 1995-2013, Mark Adler +License: Zlib + +Files: modules/zlib/src/compress.c + modules/zlib/src/deflate.h + modules/zlib/src/trees.c + modules/zlib/src/uncompr.c + modules/zlib/src/zutil.c + modules/zlib/src/zutil.h + modules/zlib/src/zconf.h +Copyright: 1995-2013, Jean-loup Gailly +License: Zlib + +Files: modules/zlib/src/deflate.c + modules/zlib/src/zlib.h +Copyright: 1995-2013, Jean-loup Gailly and Mark Adler +License: Zlib + +Files: modules/zlib/src/inftrees.c +Copyright: 1995-2013, Mark Adler +License: Zlib + +Files: mozglue/android/pbkdf2_sha256.c + mozglue/android/pbkdf2_sha256.h +Copyright: 2003-2005, 2007, 2009, Colin Percival +License: BSD-2-clause + +Files: netwerk/dns/nsIDNKitInterface.h +Copyright: 2000-2002, Japan Network Information Center +License: BSD-3-clause + +Files: netwerk/dns/prepare_tlds.py +Copyright: no-info-found +License: MPL-2.0 + +Files: netwerk/protocol/ftp/nsFtpProtocolHandler.cpp +Copyright: International Business Machines (IBM) +License: MPL-2.0 + +Files: netwerk/sctp/src/* +Copyright: 2011-2012, Michael Tuexen + 2011-2012, Irene Ruengeler + 2009-2010, Humaira Kamal + 2009-2010, Brad Penoff +License: BSD-2-clause + +Files: netwerk/sctp/src/LocalArray.h + netwerk/sctp/src/ScopedFd.h + netwerk/sctp/src/ifaddrs-android-ext.h +Copyright: 2005-2013, The Android Open Source Project +License: Apache-2.0 + +Files: netwerk/sctp/src/netinet/* +Copyright: 2008-2012, Randall Stewart + 2008-2012, Michael Tuexen + 2001-2008, Cisco Systems, Inc. +License: BSD-3-clause + +Files: netwerk/sctp/src/netinet/sctp_lock_userspace.h + netwerk/sctp/src/netinet/sctp_os_userspace.h +Copyright: 2008-2012, Randall Stewart + 2008-2012, Michael Tuexen + 2008-2012, Brad Penoff + 2001-2007, Cisco Systems, Inc. +License: BSD-3-clause + +Files: netwerk/sctp/src/netinet/sctp_sha1.c +Copyright: 2013, Lally Singh + 2008-2013, Michael Tuexen + 2008-2012, Randall Stewart + 2001-2007, Cisco Systems, Inc. +License: BSD-3-clause + +Files: netwerk/sctp/src/netinet/sctp_ss_functions.c +Copyright: 2010-2012, Robin Seggelmann + 2010-2012, Randall Stewart + 2010-2012, Michael Tuexen +License: BSD-2-clause + +Files: netwerk/sctp/src/netinet/sctp_userspace.c +Copyright: 2011, 2012, Michael Tuexen + 2011, 2012, Irene Ruengeler +License: BSD-2-clause + +Files: netwerk/sctp/src/netinet6/* +Copyright: 2008-2012, Randall Stewart + 2008-2012, Michael Tuexen + 2001-2008, Cisco Systems, Inc. +License: BSD-3-clause + +Files: netwerk/sctp/src/user_inpcb.h + netwerk/sctp/src/user_socketvar.h +Copyright: 1982, 1986, 1990, 1993, University of California +License: BSD-3-clause + +Files: netwerk/sctp/src/user_ip6_var.h +Copyright: 1995-1997, and 1998, WIDE Project + 1982, 1986, 1993, University of California +License: BSD-3-clause + +Files: netwerk/sctp/src/user_ip_icmp.h +Copyright: 1982, 1986, 1993, University of California +License: BSD-3-clause + +Files: netwerk/sctp/src/user_malloc.h +Copyright: 2005, Robert N. M. Watson + 1987, 1993, University of California +License: BSD-3-clause + +Files: netwerk/sctp/src/user_mbuf.c + netwerk/sctp/src/user_mbuf.h +Copyright: 1982, 1986, 1988, 1993, University of California +License: BSD-3-clause + +Files: netwerk/sctp/src/user_queue.h +Copyright: 1991, 1993, University of California +License: BSD-3-clause + +Files: netwerk/sctp/src/user_recv_thread.h +Copyright: 2011-2012, Michael Tuexen + 2011-2012, Irene Ruengeler +License: BSD-2-clause + +Files: netwerk/sctp/src/user_route.h +Copyright: 1980, 1986, 1993, University of California +License: BSD-3-clause + +Files: netwerk/sctp/src/user_socket.c +Copyright: 2011, 2012, Michael Tuexen + 2011, 2012, Irene Ruengeler + 2009, 2010, Humaira Kamal + 2009, 2010, Brad Penoff + 2004-2008, Robert N. M. Watson + 2004, The FreeBSD Foundation + 1982, 1986, 1988, 1990, 1993, University of California +License: BSD-2-clause + +Files: netwerk/srtp/src/* +Copyright: 2001-2006, Cisco Systems, Inc. +License: BSD-3-clause + +Files: netwerk/srtp/src/include/config.h +Copyright: no-info-found +License: MPL-2.0 + +Files: netwerk/streamconv/nsStreamConverterService.cpp +Copyright: 2000, International Business Machines (IBM) +License: MPL-2.0 + +Files: netwerk/test/unit/test_NetUtil.js + netwerk/test/unit/test_about_networking.js + netwerk/test/unit/test_about_protocol.js + netwerk/test/unit/test_auth_proxy.js + netwerk/test/unit/test_bug248970_cache.js + netwerk/test/unit/test_bug248970_cookie.js + netwerk/test/unit/test_bug455598.js + netwerk/test/unit/test_bug856978.js + netwerk/test/unit/test_cookiejars.js + netwerk/test/unit/test_cookiejars_safebrowsing.js + netwerk/test/unit/test_dns_proxy_bypass.js + netwerk/test/unit/test_extract_charset_from_content_type.js + netwerk/test/unit/test_httpResponseTimeout.js + netwerk/test/unit/test_httpauth.js + netwerk/test/unit/test_mozTXTToHTMLConv.js + netwerk/test/unit/test_offlinecache_custom-directory.js + netwerk/test/unit/test_parse_content_type.js + netwerk/test/unit/test_ping_aboutnetworking.js + netwerk/test/unit/test_protocolproxyservice.js + netwerk/test/unit/test_safeoutputstream.js + netwerk/test/unit/test_speculative_connect.js + netwerk/test/unit/test_udpsocket.js + netwerk/test/unit/test_websocket_offline.js +Copyright: no-info-found +License: MPL-2.0 + +Files: netwerk/wifi/osx_wifi.h +Copyright: 2008, Google Inc. + 2006, Alf Watt +License: BSD-3-clause + +Files: nsprpub/lib/ds/plvrsion.c + nsprpub/lib/libc/src/plvrsion.c + nsprpub/lib/prstreams/plvrsion.c + nsprpub/pr/src/prvrsion.c +Copyright: 1998, Netscape Communications Corporation +License: MPL-2.0 + +Files: nsprpub/pr/include/prvrsion.h + nsprpub/pr/src/malloc/prmalloc.c +Copyright: no-info-found +License: MPL-2.0 + +Files: nsprpub/pr/src/misc/praton.c +Copyright: 2004, Internet Systems Consortium, Inc. ("ISC") + 1993, Digital Equipment Corporation + 1983, 1990, 1993, University of California +License: BSD-3-clause or ISC + +Files: nsprpub/pr/src/misc/prerrortable.c +Copyright: 1987, 1988, the Student Information Processing Board +License: MPL-2.0 + +Files: other-licenses/atk-1.0/* +Copyright: 2001-2002, Sun Microsystems Inc. +License: LGPL-2+ + +Files: other-licenses/atk-1.0/atk/atkplug.h + other-licenses/atk-1.0/atk/atksocket.h +Copyright: 2009, Novell, Inc. +License: LGPL-2+ + +Files: other-licenses/nsis/Contrib/CityHash/cityhash/* +Copyright: 2010-2014, Google, Inc. +License: Expat + +Files: other-licenses/nsis/Contrib/liteFirewall/liteFirewall.cpp +Copyright: 2007-2009, Olivier Marcoux +License: Zlib + +Files: other-licenses/ply/* +Copyright: 2001-2009, David M. Beazley +License: BSD-3-clause + +Files: other-licenses/snappy/* +Copyright: 2005, 2006, 2008-2013, Google Inc. +License: BSD-3-clause + +Files: other-licenses/snappy/src/snappy-c.cc + other-licenses/snappy/src/snappy-c.h +Copyright: 2011, Martin Gieseking +License: BSD-3-clause + +Files: other-licenses/snappy/src/snappy.h + other-licenses/snappy/src/snappy_unittest.cc +Copyright: 2005, and onwards Google Inc +License: BSD-3-clause + +Files: parser/expat/* +Copyright: 1998, 1999, 2000 Thai Open Source Software Center Ltd + and Clark Cooper + 2001, 2002 Expat maintainers +License: Expat + +Files: parser/expat/lib/moz_extensions.c +Copyright: no-info-found +License: MPL-2.0 + +Files: parser/html/jArray.h + parser/html/nsHtml5ArrayCopy.h + parser/html/nsHtml5AttributeName.cpp + parser/html/nsHtml5AttributeName.h + parser/html/nsHtml5ElementName.cpp + parser/html/nsHtml5ElementName.h + parser/html/nsHtml5Macros.h + parser/html/nsHtml5NamedCharacters.cpp + parser/html/nsHtml5NamedCharacters.h + parser/html/nsHtml5Portability.h + parser/html/nsHtml5StateSnapshot.cpp + parser/html/nsHtml5StateSnapshot.h + parser/html/nsHtml5UTF16Buffer.cpp + parser/html/nsHtml5UTF16Buffer.h + parser/html/javasrc/* +Copyright: 2008-2014, Mozilla Foundation +License: Expat + +Files: parser/html/javasrc/MetaScanner.java + parser/html/javasrc/StackNode.java +Copyright: 2007-2011, Mozilla Foundation + 2007, Henri Sivonen +License: Expat + +Files: parser/html/javasrc/Tokenizer.java + parser/html/javasrc/TreeBuilder.java +Copyright: 2007-2013, Mozilla Foundation + 2005-2007, Henri Sivonen + 2004-2010, Apple Computer, Inc. +License: Expat + +Files: parser/html/nsHtml5HtmlAttributes.cpp + parser/html/nsHtml5HtmlAttributes.h + parser/html/nsHtml5MetaScanner.cpp + parser/html/nsHtml5MetaScanner.h + parser/html/nsHtml5StackNode.cpp + parser/html/nsHtml5StackNode.h +Copyright: 2007-2011, Mozilla Foundation + 2007, Henri Sivonen +License: Expat + +Files: parser/html/nsHtml5Tokenizer.cpp + parser/html/nsHtml5Tokenizer.h + parser/html/nsHtml5TreeBuilder.cpp + parser/html/nsHtml5TreeBuilder.h +Copyright: 2007-2013, Mozilla Foundation + 2005-2007, Henri Sivonen + 2004-2010, Apple Computer, Inc. +License: Expat + +Files: parser/html/nsHtml5TokenizerCppSupplement.h + python/mach/* + python/mach_commands.py + python/mozboot/* + python/mozbuild/* + python/mozversioncontrol/* +Copyright: no-info-found +License: MPL-2.0 + +Files: security/certverifier/OCSPCache.cpp + security/certverifier/OCSPCache.h +Copyright: 2013-2015, Mozilla Contributors +License: Apache-2.0 or MPL-2.0 + +Files: security/nss/coreconf/mkdepend/imakemdep.h +Copyright: 1993-1994, X Consortium +License: Expat + +Files: security/nss/lib/dbm/* +Copyright: 1990, 1993-1994, University of California +License: BSD-3-clause + +Files: security/nss/lib/dbm/include/ncompat.h + security/nss/lib/dbm/include/queue.h +Copyright: 1991, 1993, University of California +License: BSD-3-clause + +Files: security/nss/lib/dbm/include/extern.h +Copyright: 1991, 1993, 1994, University of California +License: BSD-3-clause + +Files: security/nss/lib/dbm/include/hsearch.h + security/nss/lib/dbm/include/search.h +Copyright: 1990, 1993, University of California +License: BSD-3-clause + +Files: security/nss/lib/dbm/src/db.c +Copyright: 1991, 1993, University of California +License: BSD-3-clause + +Files: security/nss/lib/dbm/src/h_func.c + security/nss/lib/dbm/src/memmove.c +Copyright: 1990, 1993, University of California +License: BSD-3-clause + +Files: security/nss/lib/dbm/src/mktemp.c +Copyright: 1987, 1993, University of California +License: BSD-3-clause + +Files: security/nss/lib/dbm/src/strerror.c +Copyright: 1988, 1993, University of California +License: BSD-3-clause + +Files: security/nss/lib/dbm/tests/* +Copyright: no-info-found +License: MPL-2.0 + +Files: security/nss/lib/freebl/intel-gcm-wrap.c + security/nss/lib/freebl/intel-gcm.h +Copyright: 2013, Intel Corp. +License: MPL-2.0 + +Files: security/nss/lib/jar/jzconf.h +Copyright: 1995-2013, Jean-loup Gailly +License: Zlib + +Files: security/nss/lib/jar/jzlib.h +Copyright: 1995-2013, Jean-loup Gailly and Mark Adler +License: Zlib + +Files: security/nss/lib/util/pkcs11.h + security/nss/lib/util/pkcs11f.h + security/nss/lib/util/pkcs11p.h + security/nss/lib/util/pkcs11u.h +Copyright: 1994-1999, RSA Security Inc. +License: MPL-2.0 + +Files: security/nss/lib/ssl/ssl3gthr.c + security/nss/lib/util/utilpars.c + security/nss/lib/zlib/crc32.h + security/nss/lib/zlib/inffixed.h + security/nss/lib/zlib/trees.h + security/nss/lib/zlib/patches/* + services/common/tests/unit/head_helpers.js +Copyright: no-info-found +License: MPL-2.0 + +Files: security/nss/lib/zlib/* +Copyright: 1995-2013, Mark Adler +License: Zlib + +Files: security/nss/lib/zlib/compress.c + security/nss/lib/zlib/deflate.h + security/nss/lib/zlib/example.c + security/nss/lib/zlib/minigzip.c + security/nss/lib/zlib/trees.c + security/nss/lib/zlib/uncompr.c + security/nss/lib/zlib/zutil.c + security/nss/lib/zlib/zutil.h +Copyright: 1995-2013, Jean-loup Gailly +License: Zlib + +Files: security/nss/lib/zlib/deflate.c + security/nss/lib/zlib/zlib.h +Copyright: 1995-2013, Jean-loup Gailly and Mark Adler +License: Zlib + +Files: security/nss/lib/zlib/inftrees.c +Copyright: 1995-2013, Mark Adler +License: Zlib + +Files: security/nss/lib/zlib/zconf.h +Copyright: 1995-2010, Jean-loup Gailly +License: Zlib + +Files: security/sandbox/chromium/base/third_party/dynamic_annotations/* +Copyright: 1999-2013, Google Inc. +License: BSD-3-clause + +Files: security/sandbox/chromium/base/third_party/superfasthash/* +Copyright: 2010, Paul Hsieh +License: BSD-2-clause + +Files: testing/gtest/gmock/* + testing/gtest/gtest/* +Copyright: 1999-2013, Google Inc. +License: BSD-3-clause + +Files: testing/mochitest/pywebsocket/* +Copyright: 1999-2013, Google Inc. +License: BSD-3-clause + +Files: testing/mochitest/pywebsocket/mod_pywebsocket/http_header_util.py +Copyright: 2011, Google Inc. +License: BSD-3-clause + +Files: testing/mochitest/tests/SimpleTest/ChromePowers.js + testing/mochitest/tests/SimpleTest/LogController.js + testing/mochitest/tests/SimpleTest/MemoryStats.js + testing/mochitest/tests/SimpleTest/MockObjects.js + testing/mochitest/tests/SimpleTest/setup.js + testing/mozbase/manifestparser/tests/test_convert_directory.py + testing/mozbase/manifestparser/tests/test_convert_symlinks.py + testing/mozbase/manifestparser/tests/test_manifestparser.py + testing/mozbase/mozfile/tests/test_tempdir.py + testing/mozbase/mozfile/tests/test_tempfile.py + testing/web-platform/tests/resources/testharnessreport.js + toolkit/components/ctypes/tests/unit/test_jsctypes.js + toolkit/components/mediasniffer/mp3sniff.c + toolkit/components/osfile/tests/xpcshell/test_file_URL_conversion.js + toolkit/components/osfile/tests/xpcshell/test_makeDir.js + toolkit/components/osfile/tests/xpcshell/test_path.js + toolkit/components/osfile/tests/xpcshell/test_path_constants.js + toolkit/components/osfile/tests/xpcshell/test_removeDir.js + toolkit/components/osfile/tests/xpcshell/test_removeEmptyDir.js + toolkit/components/passwordmgr/test/browser/* + toolkit/components/places/tests/favicons/head_favicons.js + toolkit/content/tests/browser/browser_save_resend_postdata.js + toolkit/content/tests/browser/common/* + toolkit/content/tests/unit/* +Copyright: no-info-found +License: MPL-2.0 + +Files: testing/tools/screenshot/* +Copyright: 2009, The Mozilla Foundation +License: BSD-3-clause + +Files: testing/web-platform/tests/resources/webidl2/test/widlproc/* +Copyright: 2009, Aplix Corporation +License: Apache-2.0 + +Files: testing/web-platform/tests/tools/pywebsocket/* +Copyright: 1999-2013, Google Inc +License: BSD-3-clause + +Files: toolkit/components/protobuf/* +Copyright: 2005-2006, 2008-2013, Google Inc. +License: BSD-3-clause + +Files: toolkit/components/reader/Readability.js +Copyright: 2010, Arc90 Inc. +License: Apache-2.0 + +Files: toolkit/components/url-classifier/HashStore.cpp +Copyright: 2006-2013, The Chromium Authors. +License: BSD-3-clause + + +Files: toolkit/crashreporter/google-breakpad/* +Copyright: 2006-2009, Google Inc. +License: BSD-3-clause + +Files: toolkit/crashreporter/google-breakpad/src/common/arm_ex_reader.cc + toolkit/crashreporter/google-breakpad/src/common/arm_ex_reader.h + toolkit/crashreporter/google-breakpad/src/common/arm_ex_to_module.cc + toolkit/crashreporter/google-breakpad/src/common/arm_ex_to_module.h +Copyright: 2011, Linaro Limited + 2010-2011, Google Inc. +License: BSD-3-clause or Expat + +Files: toolkit/crashreporter/google-breakpad/src/common/dwarf/* + toolkit/crashreporter/google-breakpad/src/common/linux/elf_symbols_to_module.cc + toolkit/crashreporter/google-breakpad/src/common/linux/elf_symbols_to_module.h +Copyright: 2005-2006, 2008-2013, Google Inc. +License: BSD-3-clause + +Files: toolkit/crashreporter/google-breakpad/src/common/dwarf/bytereader_unittest.cc + toolkit/crashreporter/google-breakpad/src/common/dwarf/cfi_assembler.cc + toolkit/crashreporter/google-breakpad/src/common/dwarf/cfi_assembler.h + toolkit/crashreporter/google-breakpad/src/common/dwarf/dwarf2reader_cfi_unittest.cc + toolkit/crashreporter/google-breakpad/src/common/dwarf/dwarf2reader_die_unittest.cc + toolkit/crashreporter/google-breakpad/src/common/dwarf/dwarf2reader_test_common.h +Copyright: 1999-2013, Google Inc. +License: BSD-3-clause + +Files: toolkit/crashreporter/google-breakpad/src/common/dwarf/types.h +Copyright: 2008, Google, Inc. +License: BSD-3-clause + +Files: toolkit/crashreporter/google-breakpad/src/common/mac/GTMDefines.h + toolkit/crashreporter/google-breakpad/src/common/mac/GTMLogger.h + toolkit/crashreporter/google-breakpad/src/common/mac/GTMLogger.m + toolkit/crashreporter/google-breakpad/src/common/mac/testing/* +Copyright: 2007-2008, 2010, 2012, Google Inc. +License: Apache-2.0 + +Files: toolkit/crashreporter/google-breakpad/src/common/mac/testing/GTMSenTestCase.h +Copyright: 2007, 2008, Google Inc. + 1997-2005, Sen:te (Sente SA). +License: Apache-2.0 or BSD-2-clause + +Files: toolkit/crashreporter/google-breakpad/src/common/md5.cc +Copyright: no-info-found +License: public-domain + +Files: toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc + toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h +Copyright: 2005-2006, 2008-2013, Google Inc. +License: BSD-3-clause + +Files: toolkit/crashreporter/google-breakpad/src/processor/disassembler_x86.cc + toolkit/crashreporter/google-breakpad/src/processor/disassembler_x86.h + toolkit/crashreporter/google-breakpad/src/processor/disassembler_x86_unittest.cc + toolkit/crashreporter/google-breakpad/src/processor/exploitability_unittest.cc +Copyright: no-info-found +License: BSD-3-clause + +Files: toolkit/crashreporter/google-breakpad/src/processor/static_map-inl.h + toolkit/crashreporter/google-breakpad/src/processor/static_map.h + toolkit/crashreporter/google-breakpad/src/processor/static_map_iterator-inl.h + toolkit/crashreporter/google-breakpad/src/processor/static_map_iterator.h +Copyright: 2005-2006, 2008-2013, Google Inc. +License: BSD-3-clause + +Files: toolkit/crashreporter/google-breakpad/src/third_party/lss/* +Copyright: 1999-2013, Google Inc. +License: BSD-3-clause + +Files: toolkit/crashreporter/test/browser/browser_clearReports.js +Copyright: no-info-found +License: MPL-2.0 + +Files: toolkit/locales/compare-locales.pl + toolkit/modules/tests/xpcshell/test_propertyListsUtils.js + toolkit/mozapps/extensions/test/browser/browser_CTP_plugins.js + toolkit/mozapps/extensions/test/browser/browser_bug562992.js + toolkit/mozapps/extensions/test/xpcshell/*.js + toolkit/mozapps/update/tests/TestAUSReadStrings.cpp + toolkit/mozapps/update/tests/unit_aus_update/* + toolkit/mozapps/update/tests/unit_base_updater/marFailurePartial.js + toolkit/mozapps/update/tests/unit_base_updater/marStageFailurePartial.js + toolkit/mozapps/update/tests/unit_base_updater/marStageSuccessComplete.js + toolkit/mozapps/update/tests/unit_base_updater/marStageSuccessPartial.js + toolkit/mozapps/update/tests/unit_base_updater/marSuccessComplete.js + toolkit/mozapps/update/tests/unit_base_updater/marSuccessPartial.js + toolkit/mozapps/update/tests/unit_base_updater/marVersionDowngrade.js + toolkit/mozapps/update/tests/unit_base_updater/marWrongChannel.js + toolkit/mozapps/update/tests/unit_service_updater/marFailurePartialSvc.js + toolkit/mozapps/update/tests/unit_service_updater/marStageFailurePartialSvc.js + toolkit/mozapps/update/tests/unit_service_updater/marStageSuccessCompleteSvc.js + toolkit/mozapps/update/tests/unit_service_updater/marStageSuccessPartialSvc.js + toolkit/mozapps/update/tests/unit_service_updater/marSuccessCompleteSvc.js + toolkit/mozapps/update/tests/unit_service_updater/marSuccessPartialSvc.js +Copyright: no-info-found +License: MPL-2.0 + +Files: tools/update-packaging/test/common.sh + tools/update-packaging/test/make_full_update.sh +Copyright: no-info-found +License: MPL-2.0 + +Files: widget/cocoa/ComplexTextInputPanel.h +Copyright: 2006-2009, 2012, Apple Inc. +License: BSD-2-clause + +Files: widget/x11/keysym2ucs.c +Copyright: Markus G. Kuhn +License: MPL-2.0 + +Files: xpcom/build/mach_override.h +Copyright: 2003-2009, Jonathan Wolf Rentzsch: +License: Expat + +Files: xpcom/components/nsComponentManager.cpp + xpcom/io/nsLocalFile.h +Copyright: 2000, International Business Machines (IBM) +License: MPL-2.0 + +Files: xpcom/io/SpecialSystemDirectory.cpp +Copyright: 1998 Netscape Communications Corporation, + 2007 Red Hat Inc. +License: MPL-2.0 + +Files: xpcom/tests/unit/data/* + xpcom/tests/unit/test_bug725015.js + xpcom/tests/unit/test_file_createUnique.js + xpcom/tests/unit/test_file_equality.js + xpcom/tests/unit/test_file_renameTo.js + xpcom/tests/unit/test_ioutil.js + xpcom/tests/unit/test_localfile.js + xpcom/tests/unit/test_notxpcom_scriptable.js + xpcom/tests/unit/test_nsIMutableArray.js + xpcom/tests/unit/test_nsIProcess.js + xpcom/tests/unit/test_pipe.js + xpcom/tests/unit/test_seek_multiplex.js + xpcom/tests/unit/test_storagestream.js + xpcom/tests/unit/test_stringstream.js + xpcom/tests/unit/test_systemInfo.js + xpcom/tests/unit/test_streams.js + comm/suite/browser/test/browser/browser_bug409624.js + comm/suite/browser/test/browser/browser_bug427559.js + comm/suite/browser/test/browser/browser_pluginCrashCommentAndURL.js + comm/suite/browser/test/browser/browser_pluginplaypreview.js + comm/suite/browser/test/browser/browser_popupNotification.js + comm/suite/browser/test/browser/browser_privatebrowsing_protocolhandler.js + comm/suite/browser/test/browser/browser_relatedTabs.js + comm/suite/browser/test/browser/head.js + comm/suite/locales/en-US/chrome/browser/pageInfo.dtd + comm/suite/locales/en-US/chrome/common/aboutPrivateBrowsing.dtd + comm/suite/locales/en-US/suite-l10n.js +Copyright: no-info-found +License: MPL-2.0 + +License: Apache-2.0 + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS"BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + . + On Debian systems, the complete text of the Apache License, + Version 2.0 can be found in '/usr/share/common-licenses/Apache-2.0'. + +License: BSD-2-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice(s), this list of conditions and the following disclaimer as + the first lines of this file unmodified other than the possible + addition of one or more copyright notices. + 2. Redistributions in binary form must reproduce the above copyright + notice(s), this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License: BSD-3-clause + Copyright © belongs to the uploader + All rights reserved. + . + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1.Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of the owner nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License: BSD-4-clause + Copyright (c) 1993 The Regents of the University of California. All + rights reserved. + . + This software was developed by the Computer Systems Engineering group + at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and + contributed to Berkeley. + . + All advertising materials mentioning features or use of this software + must display the following acknowledgement: This product includes + software developed by the University of California, Lawrence Berkeley + Laboratory. + . + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + . + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + . + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + . + 3. All advertising materials mentioning features or use of this + software must display the following acknowledgement: This product + includes software developed by the University of California, + Berkeley and its contributors. + . + 4. Neither the name of the University nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS + BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License: Expat + The MIT License + . + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated + documentation files (the "Software"), to deal in the Software + without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to + whom the Software is furnished to do so, subject to the + following conditions: + . + The above copyright notice and this permission notice shall + be included in all copies or substantial portions of the + Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT + WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT + SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + +License: GPL-2 + On Debian systems, the complete text of the GNU General Public + License can be found in the file /usr/share/common-licenses/GPL-2'. + +License: GPL-2+ + On Debian systems, the complete text of the GNU General Public + License can be found in the file /usr/share/common-licenses/GPL-2'. + +License: GPL-3 + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 3 dated June, 2007. + . + On Debian systems, the complete text of version 3 of the GNU General + Public License can be found in '/usr/share/common-licenses/GPL-3'. + +License: ISC + Copyright © 2004-2012 by Internet Systems Consortium, Inc. ("ISC") + Copyright © 1995-2003 by Internet Software Consortium + . + Permission to use, copy, modify, and/or distribute this software for + any purpose with or without fee is hereby granted, provided that the + above copyright notice and this permission notice appear in all + copies. + . + THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY + SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT + OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +License: LGPL-2+ + This program is free software; you can redistribute it and/or modify it under + the terms of the GNU Library General Public License as published by the Free + Software Foundation; version 2 of the License, or (at your option) any later + version. + . + On Debian systems, the complete text of version 2 of the GNU Library + General Public License can be found in `/usr/share/common-licenses/LGPL-2'. + +License: LGPL-2.1 + On Debian systems, the complete text of the GNU Library General Public + License can be found in the file `/usr/share/common-licenses/LGPL-2.1'. + +License: LGPL-2.1+ + This program is free software; you can redistribute it and/or modify it under + the terms of the GNU Library General Public License as published by the + Free Software Foundation; version 2.1 of the License, or (at your option) any + later version. + . + On Debian systems, the complete text of version 2.1 of the GNU General + Public License can be found in `/usr/share/common-licenses/LGPL-2.1'. + +License: old-MIT + Permission is hereby granted, without written agreement and without + license or royalty fees, to use, copy, modify, and distribute this + software and its documentation for any purpose, provided that the + above copyright notice and the following two paragraphs appear in + all copies of this software. + . + IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + DAMAGE. + . + THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + +License: MPL-1.0 + MOZILLA PUBLIC LICENSE + Version 1.0 + . + --------------- + . + 1. Definitions. + . + 1.1. "Contributor" means each entity that creates or contributes to + the creation of Modifications. + . + 1.2. "Contributor Version" means the combination of the Original + Code, prior Modifications used by a Contributor, and the + Modifications made by that particular Contributor. + . + 1.3. "Covered Code" means the Original Code or Modifications or the + combination of the Original Code and Modifications, in each + case including portions thereof. + . + 1.4. "Electronic Distribution Mechanism" means a mechanism + generally accepted in the software development community for + the electronic transfer of data. + . + 1.5. "Executable" means Covered Code in any form other than Source + Code. + . + 1.6. "Initial Developer" means the individual or entity identified + as the Initial Developer in the Source Code notice required by + Exhibit A. + . + 1.7. "Larger Work" means a work which combines Covered Code or + portions thereof with code not governed by the terms of this + License. + . + 1.8. "License" means this document. + . + 1.9. "Modifications" means any addition to or deletion from the + substance or structure of either the Original Code or any + previous Modifications. When Covered Code is released as a + series of files, a Modification is: + . + A. Any addition to or deletion from the contents of a file + containing Original Code or previous Modifications. + . + B. Any new file that contains any part of the Original Code + or previous Modifications. + . + 1.10. "Original Code" means Source Code of computer software code + which is described in the Source Code notice required by + Exhibit A as Original Code, and which, at the time of its + release under this License is not already Covered Code + governed by this License. + . + 1.11. "Source Code" means the preferred form of the Covered Code for + making modifications to it, including all modules it contains, + plus any associated interface definition files, scripts used + to control compilation and installation of an Executable, or a + list of source code differential comparisons against either + the Original Code or another well known, available Covered + Code of the Contributor's choice. The Source Code can be in a + compressed or archival form, provided the appropriate + decompression or de-archiving software is widely available for + no charge. + . + 1.12. "You" means an individual or a legal entity exercising rights + under, and complying with all of the terms of, this License + or a future version of this License issued under Section 6.1. + For legal entities, "You" includes any entity which controls, + is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, + direct or indirect, to cause the direction or management of + such entity, whether by contract or otherwise, or (b) + ownership of fifty percent (50%) or more of the outstanding + shares or beneficial ownership of such entity. + . + 2. Source Code License. + . + 2.1. The Initial Developer Grant. + The Initial Developer hereby grants You a world-wide, royalty-free, + non-exclusive license, subject to third party intellectual property + claims: + (a) to use, reproduce, modify, display, perform, sublicense and + distribute the Original Code (or portions thereof) with or + without Modifications, or as part of a Larger Work; and + (b) under patents now or hereafter owned or controlled by + Initial Developer, to make, have made, use and sell + ("Utilize") the Original Code (or portions thereof), but + solely to the extent that any such patent is reasonably + necessary to enable You to Utilize the Original Code (or + portions thereof) and not to any greater extent that may be + necessary to Utilize further Modifications or combinations. + . + 2.2. Contributor Grant. + Each Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license, subject to third party intellectual + property claims: + (a) to use, reproduce, modify, display, perform, + sublicense and distribute the Modifications created by such + Contributor (or portions thereof) either on an unmodified + basis, with other Modifications, as Covered Code or as part of + a Larger Work; and + (b) under patents now or hereafter owned or controlled by + Contributor, to Utilize the Contributor Version (or portions + thereof), but solely to the extent that any such patent is + reasonably necessary to enable You to Utilize the Contributor + Version (or portions thereof), and not to any greater extent + that may be necessary to Utilize further Modifications or + combinations. + . + 3. Distribution Obligations. + . + 3.1. Application of License. + The Modifications which You create or to which You contribute are + governed by the terms of this License, including without limitation + Section 2.2. The Source Code version of Covered Code may be + distributed only under the terms of this License or a future version + of this License released under Section 6.1, and You must include a + copy of this License with every copy of the Source Code You + distribute. You may not offer or impose any terms on any Source + Code version that alters or restricts the applicable version of + this License or the recipients' rights hereunder. However, You may + include an additional document offering the additional rights + described in Section 3.5. + . + 3.2. Availability of Source Code. + Any Modification which You create or to which You contribute must be + made available in Source Code form under the terms of this License + either on the same media as an Executable version or via an accepted + Electronic Distribution Mechanism to anyone to whom you made an + Executable version available; and if made available via Electronic + Distribution Mechanism, must remain available for at least twelve + (12) months after the date it initially became available, or at + least six (6) months after a subsequent version of that particular + Modification has been made available to such recipients. You are + responsible for ensuring that the Source Code version remains + available even if the Electronic Distribution Mechanism is + maintained by a third party. + . + 3.3. Description of Modifications. + You must cause all Covered Code to which you contribute to contain + a file documenting the changes You made to create that Covered Code + and the date of any change. You must include a prominent statement + that the Modification is derived, directly or indirectly, from + Original Code provided by the Initial Developer and including the + name of the Initial Developer in (a) the Source Code, and (b) in + any notice in an Executable version or related documentation in + which You describe the origin or ownership of the Covered Code. + . + 3.4. Intellectual Property Matters + (a) Third Party Claims. + If You have knowledge that a party claims an intellectual + property right in particular functionality or code (or its + utilization under this License), you must include a text file + with the source code distribution titled "LEGAL" which + describes the claim and the party making the claim in + sufficient detail that a recipient will know whom to contact. + If you obtain such knowledge after You make Your Modification + available as described in Section 3.2, You shall promptly + modify the LEGAL file in all copies You make available + thereafter and shall take other steps (such as notifying + appropriate comm/mailing lists or newsgroups) reasonably calculated + to inform those who received the Covered Code that new + knowledge has been obtained. + (b) Contributor APIs. + If Your Modification is an application programming interface + and You own or control patents which are reasonably necessary + to implement that API, you must also include this information + in the LEGAL file. + . + 3.5. Required Notices. + You must duplicate the notice in Exhibit A in each file of the + Source Code, and this License in any documentation for the Source + Code, where You describe recipients' rights relating to Covered + Code. If You created one or more Modification(s), You may add your + name as a Contributor to the notice described in Exhibit A. If it + is not possible to put such notice in a particular Source Code file + due to its structure, then you must include such notice in a + location (such as a relevant directory file) where a user would be + likely to look for such a notice. You may choose to offer, and to + charge a fee for, warranty, support, indemnity or liability + obligations to one or more recipients of Covered Code. However, You + may do so only on Your own behalf, and not on behalf of the Initial + Developer or any Contributor. You must make it absolutely clear than + any such warranty, support, indemnity or liability obligation is + offered by You alone, and You hereby agree to indemnify the Initial + Developer and every Contributor for any liability incurred by the + Initial Developer or such Contributor as a result of warranty, + support, indemnity or liability terms You offer. + . + 3.6. Distribution of Executable Versions. + You may distribute Covered Code in Executable form only if the + requirements of Section 3.1-3.5 have been met for that Covered Code, + and if You include a notice stating that the Source Code version of + the Covered Code is available under the terms of this License, + including a description of how and where You have fulfilled the + obligations of Section 3.2. The notice must be conspicuously + included in any notice in an Executable version, related + documentation or collateral in which You describe recipients' + rights relating to the Covered Code. You may distribute the + Executable version of Covered Code under a license of Your choice, + which may contain terms different from this License, provided that + You are in compliance with the terms of this License and that the + license for the Executable version does not attempt to limit or + alter the recipient's rights in the Source Code version from the + rights set forth in this License. If You distribute the Executable + version under a different license You must make it absolutely clear + that any terms which differ from this License are offered by You + alone, not by the Initial Developer or any Contributor. You hereby + agree to indemnify the Initial Developer and every Contributor for + any liability incurred by the Initial Developer or such Contributor + as a result of any such terms You offer. + . + 3.7. Larger Works. + You may create a Larger Work by combining Covered Code with other + code not governed by the terms of this License and distribute the + Larger Work as a single product. In such a case, You must make sure + the requirements of this License are fulfilled for the Covered + Code. + . + 4. Inability to Comply Due to Statute or Regulation. + . + If it is impossible for You to comply with any of the terms of this + License with respect to some or all of the Covered Code due to + statute or regulation then You must: (a) comply with the terms of + this License to the maximum extent possible; and (b) describe the + limitations and the code they affect. Such description must be + included in the LEGAL file described in Section 3.4 and must be + included with all distributions of the Source Code. Except to the + extent prohibited by statute or regulation, such description must + be sufficiently detailed for a recipient of ordinary skill to be + able to understand it. + . + 5. Application of this License. + . + This License applies to code to which the Initial Developer has + attached the notice in Exhibit A, and to related Covered Code. + . + 6. Versions of the License. + . + 6.1. New Versions. + Netscape Communications Corporation ("Netscape") may publish revised + and/or new versions of the License from time to time. Each version + will be given a distinguishing version number. + . + 6.2. Effect of New Versions. + Once Covered Code has been published under a particular version of + the License, You may always continue to use it under the terms of + that version. You may also choose to use such Covered Code under + the terms of any subsequent version of the License published by + Netscape. No one other than Netscape has the right to modify the + terms applicable to Covered Code created under this License. + . + 6.3. Derivative Works. + If you create or use a modified version of this License (which you + may only do in order to apply it to code which is not already + Covered Code governed by this License), you must (a) rename Your + license so that the phrases "Mozilla", "MOZILLAPL", "MOZPL", + "Netscape", "NPL" or any confusingly similar phrase do not appear + anywhere in your license and (b) otherwise make it clear that your + version of the license contains terms which differ from the Mozilla + Public License and Netscape Public License. (Filling in the name of + the Initial Developer, Original Code or Contributor in the notice + described in Exhibit A shall not of themselves be deemed to be + modifications of this License.) + . + 7. DISCLAIMER OF WARRANTY. + . + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, + INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS + FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR + NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF + THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE + DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY + OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, + REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN + ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS + AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + . + 8. TERMINATION. + . + This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail to + cure such breach within 30 days of becoming aware of the breach. + All sublicenses to the Covered Code which are properly granted + shall survive any termination of this License. Provisions which, by + their nature, must remain in effect beyond the termination of this + License shall survive. + . + 9. LIMITATION OF LIABILITY. + . + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE INITIAL + DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED + CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO YOU OR + ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR + CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT + LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER + FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR + LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE + POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT + APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH + PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH + LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR + LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THAT EXCLUSION + AND LIMITATION MAY NOT APPLY TO YOU. + . + 10. U.S. GOVERNMENT END USERS. + . + The Covered Code is a "commercial item," as that term is defined in + 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer + software" and "commercial computer software documentation," as such + terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 + C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June + 1995), all U.S. Government End Users acquire Covered Code with only + those rights set forth herein. + . + 11. MISCELLANEOUS. + . + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. This License shall be governed by + California law provisions (except to the extent applicable law, if + any, provides otherwise), excluding its conflict-of-law provisions. + With respect to disputes in which at least one party is a citizen + of, or an entity chartered or registered to do business in, the + United States of America: (a) unless otherwise agreed in writing, + all disputes relating to this License (excepting any dispute + relating to intellectual property rights) shall be subject to final + and binding arbitration, with the losing party paying all costs of + arbitration; (b) any arbitration relating to this Agreement shall be + held in Santa Clara County, California, under the auspices of + JAMS/EndDispute; and (c) any litigation relating to this Agreement + shall be subject to the jurisdiction of the Federal Courts of the + Northern District of California, with venue lying in Santa Clara + County, California, with the losing party responsible for costs, + including without limitation, court costs and reasonable attorneys + fees and expenses. The application of the United Nations Convention + on Contracts for the International Sale of Goods is expressly + excluded. Any law or regulation which provides that the language of + a contract shall be construed against the drafter shall not apply + to this License. + . + 12. RESPONSIBILITY FOR CLAIMS. + . + Except in cases where another Contributor has failed to comply with + Section 3.4, You are responsible for damages arising, directly or + indirectly, out of Your utilization of rights under this License, + based on the number of copies of Covered Code you made available, + the revenues you received from utilizing such rights, and other + relevant factors. You agree to work with affected parties to + distribute responsibility on an equitable basis. + . + EXHIBIT A. + . + "The contents of this file are subject to the Mozilla Public License + Version 1.0 (the "License"); you may not use this file except in + compliance with the License. You may obtain a copy of the License + at http://www.mozilla.org/MPL/ + . + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + the License for the specific language governing rights and + limitations under the License. + . + The Original Code is ______________________________________. + . + The Initial Developer of the Original Code is ____________________. + Portions created by ______________________ + are Copyright (C) ______ _______________________. All Rights + Reserved. + . + Contributor(s): ______________________________________." + . + The original content can be found on https://www.mozilla.org/MPL/1.0/ + +License: MPL-1.1 + On Debian systems, the complete text of the GNU Library General Public + License can be found in the file `/usr/share/common-licenses/MPL-1.1'. + +License: MPL-2.0 + On Debian systems, the complete text of the GNU Library General Public + License can be found in the file `/usr/share/common-licenses/MPL-2.0'. + +License: Zlib + The zlib License + . + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + . + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + . + 1. The origin of this software must not be misrepresented; you must + not claim that you wrote the original software. If you use this + software in a product, an acknowledgment in the product + documentation would be appreciated but is not required. + . + 2. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + . + 3. This notice may not be removed or altered from any source + distribution. + +License: libpng + This copy of the libpng notices is provided for your convenience. In case of + any discrepancy between this copy and the notices in the file png.h that is + included in the libpng distribution, the latter shall prevail. + . + COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: + . + If you modify libpng you may insert additional notices immediately following + this sentence. + . + This code is released under the libpng license. + . + libpng versions 1.2.6, August 15, 2004, through 1.6.17, March 26, 2015, are + Copyright (c) 2004, 2006-2015 Glenn Randers-Pehrson, and are + distributed according to the same disclaimer and license as libpng-1.2.5 + with the following individual added to the list of Contributing Authors + . + Cosmin Truta + . + libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are + Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are + distributed according to the same disclaimer and license as libpng-1.0.6 + with the following individuals added to the list of Contributing Authors + . + Simon-Pierre Cadieux + Eric S. Raymond + Gilles Vollant + . + and with the following additions to the disclaimer: + . + There is no warranty against interference with your enjoyment of the + library or against infringement. There is no warranty that our + efforts or the library will fulfill any of your particular purposes + or needs. This library is provided with all faults, and the entire + risk of satisfactory quality, performance, accuracy, and effort is with + the user. + . + libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are + Copyright (c) 1998, 1999 Glenn Randers-Pehrson, and are + distributed according to the same disclaimer and license as libpng-0.96, + with the following individuals added to the list of Contributing Authors: + . + Tom Lane + Glenn Randers-Pehrson + Willem van Schaik + . + libpng versions 0.89, June 1996, through 0.96, May 1997, are + Copyright (c) 1996, 1997 Andreas Dilger + Distributed according to the same disclaimer and license as libpng-0.88, + with the following individuals added to the list of Contributing Authors: + . + John Bowler + Kevin Bracey + Sam Bushell + Magnus Holmgren + Greg Roelofs + Tom Tanner + . + libpng versions 0.5, May 1995, through 0.88, January 1996, are + Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. + . + For the purposes of this copyright and license, "Contributing Authors" + is defined as the following set of individuals: + . + Andreas Dilger + Dave Martindale + Guy Eric Schalnat + Paul Schmidt + Tim Wegner + . + The PNG Reference Library is supplied "AS IS". The Contributing Authors + and Group 42, Inc. disclaim all warranties, expressed or implied, + including, without limitation, the warranties of merchantability and of + fitness for any purpose. The Contributing Authors and Group 42, Inc. + assume no liability for direct, indirect, incidental, special, exemplary, + or consequential damages, which may result from the use of the PNG + Reference Library, even if advised of the possibility of such damage. + . + Permission is hereby granted to use, copy, modify, and distribute this + source code, or portions hereof, for any purpose, without fee, subject + to the following restrictions: + . + 1. The origin of this source code must not be misrepresented. + . + 2. Altered versions must be plainly marked as such and must not + be misrepresented as being the original source. + . + 3. This Copyright notice may not be removed or altered from any + source or altered source distribution. + . + The Contributing Authors and Group 42, Inc. specifically permit, without + fee, and encourage the use of this source code as a component to + supporting the PNG file format in commercial products. If you use this + source code in a product, acknowledgment is not required but would be + appreciated. + . + A "png_get_copyright" function is available, for convenient use in "about" + boxes and the like: + . + printf("%s",png_get_copyright(NULL)); + . + Also, the PNG logo (in PNG format, of course) is supplied in the + files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). + . + Libpng is OSI Certified Open Source Software. OSI Certified Open Source is + a certification mark of the Open Source Initiative. + . + Glenn Randers-Pehrson + glennrp at users.sourceforge.net + March 26, 2015 + . + The original content can be found on + http://www.libpng.org/pub/png/src/libpng-LICENSE.txt + +License: public-domain + They may be distributed freely and/or modified as long as the original + Author is mentioned! diff --git a/create-lightning-l10n-tarball.sh b/create-lightning-l10n-tarball.sh new file mode 100755 index 0000000000..b1501a20ea --- /dev/null +++ b/create-lightning-l10n-tarball.sh @@ -0,0 +1,249 @@ +#!/bin/sh +# +# create-lightning-l10n-tarball.sh +# Porpose: +# Create an upstream tarball from the Lightning xpi language packs. +# Current stable and beta version can be found on +# https://addons.mozilla.org/de/thunderbird/addon/lightning/versions/ + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 + +# Initialize our own variables: +VERBOSE=0 +FILE="" +ARG_COUNT=0 +LANG_COUNT=0 +CURDIR_FULL=`pwd` +CURDIR=$(basename `pwd`) +MOZILLA_CDN_PROTO="https://" +MOZILLA_CDN_BASE="download-origin.cdn.mozilla.net/pub/thunderbird" + +# default package name +XPI=lightning.xpi +BASE_PKG="lightning-l10n" + +# local functions +usage () { +cat << EOF + +Usage: ${0##*/} [-h|-vd] [-e BETA_VER] VERSION + + -h display this help and exit + -v verbose mode, increase the output messages + -d download given [VERSION] + -e download [BETA_VER] from the beta versions + (Used in combination with '-d' to get beta marked upstream + versions.) + + [BETA_VER] given beta version of the upstream TB version, it will be re + calculated into the correct Lightning version + + [VERSION] given version in Debian format for downloading and/or creating + the *.orig.tar.xz + +Examples: + ${0##*/} -d 45.1 + Download version '45.1' of the Lightning l10n packages from Mozilla and creates + a file 'thunderbird-45.1.orig-lightning-l10n.tar.xz' that can be imported with + 'git-import-orig'. + + ${0##*/} -de 45.1b1 45.1~b1 + Download the beta version '45.1b1' of the Lightning l10n packages from Mozilla + and created a file 'thunderbird-45.1~b1.orig-lightning-l10n.tar.xz'. This file can be + automatically imported with 'git-import-orig'. + +EOF +} + +debug () { +if [ "${VERBOSE}" = "1" ]; then + echo "DEBUG -> $1" +fi +} + +fail () { + echo $* + exit ${EXIT_FAILURE} +} + +######################## +# We are starting here # +######################## + +# check for wget, curl and python2 +test -f /usr/bin/wget || fail "wget is missing, please install first!" +test -f /usr/bin/curl || fail "curl is missing, please install first!" +test -f /usr/bin/python || fail "python2 is missing, please install first!" + +# check if we are inside icedove/ and have a git environment +if [ "${CURDIR}" != "thunderbird" ]; then + echo "Not in thunderbird/.." + exit ${EXIT_FAILURE} +else + if [ ! -d .git ]; then + echo "no directory .git/ found! You are in the correct directory?" + exit ${EXIT_FAILURE} + fi +fi + +# we have no options found? +if [ "$#" -le 1 ]; then + echo "You need at least one option!" >&2 + echo + usage ${EXIT_FAILURE} +fi + +OPTIND=1 # Reset is necessary if getopts was used previously in the script. It is a good idea to make this local in a function. +while getopts "hvde:" opt; do + case "${opt}" in + h) HELP=1 + usage + exit + ;; + v) echo "[[ ... using verbose mode ... ]]" + VERBOSE=1 + debug "found option '-v'" + ;; + d) DOWNLOAD=yes + debug "found option '-d'" + ;; + e) BETA_VER=${OPTARG} + EXPERIMENTAL=1 + debug "found option '-e' with given BETA_VER: ${BETA_VER}" + ;; + :) "Option -${OPTARG} requires an argument." >&2 + exit 1 + ;; + '?') + usage >&2 + exit 1 + ;; + esac +done + +# shift found options +shift $(( OPTIND - 1 )) + +# looping the arguments, we should have at least only one without an option! +for ARG; do + ARG_COUNT=`expr ${ARG_COUNT} + 1` + debug "given argument: ${ARG}" + debug "ARG_COUNT = ${ARG_COUNT}" +done +if [ "${ARG_COUNT}" = "0" ]; then + echo "missing argument for VERSION!" + exit ${EXIT_FAILURE} +elif [ "${ARG_COUNT}" != "1" ]; then + echo "more than one argument for VERSION given!" + exit ${EXIT_FAILURE} +fi + +# o.k. the last argument should be the version +VERSION=${ARG} +TB_VERSION=${VERSION} + +debug "Download xpi: ........ ${DOWNLOAD:-off}" +if [ "${BETA_VER}" != "" ]; then + debug "Upstream TB version: . ${BETA_VER}" + TB_VERSION=${BETA_VER} +fi +LN_VERSION=`echo $(python comm/calendar/lightning/build/makeversion.py ${TB_VERSION})` +debug "Debian version: ...... ${VERSION}" +debug "Lightning version: ... ${LN_VERSION}" + +# creating temporary directories inside /tmp +# UNPACKDIR -> the directory there the original '${lightning-l10n}.xpi' or the single +# 'lightning-${LN_VERSION}.$LANG.linux-i686.xpi' will be extracted, it +# contains the complete content of the lightning.xpi +# ORIGDIR -> the directory for the plain needed content of the ${LANG}, +# will be used for the debian.orig.tar.xz + +export TMPDIR="${HOME}/tmp/tb-lightning-tmp" + UNPACKDIR="${TMPDIR}/${TB_VERSION}/unpack/" + TBARCHIVEDIR="${TMPDIR}" + ORIGDIR="${TMPDIR}${BASE_PKG}-${VERSION}/${BASE_PKG}" +echo ${TMPDIR} +# download Thunderbird precompiled archives from the CDN of Mozilla +if [ -n "${DOWNLOAD}" ]; then + rm -f ${XPI} + if [ -n "${EXPERIMENTAL}" ]; then + debug "${MOZILLA_CDN_PROTO}${MOZILLA_CDN_BASE}/releases/${TB_VERSION}/linux-i686" + debug "creating ${UNPACKDIR}" + mkdir -p ${UNPACKDIR}lightning-l10n + debug "going downloading Thunderbird archives from ${MOZILLA_CDN_PROTO}${MOZILLA_CDN_BASE}/releases/${TB_VERSION}/linux-i686/" + cd ${TMPDIR} + # going to download the files + LIST=`curl -L --silent "${MOZILLA_CDN_PROTO}${MOZILLA_CDN_BASE}/releases/${TB_VERSION}/linux-i686/" | grep " this wont with version 4.0 or greater <-- needs to be fixed + # with the release of 4.0 + unzip -q -d ${UNPACKDIR} ${XPI} || fail "Oops! Failed to unzip ${XPI}" +fi + +# shipped with lightning already, removing the folder 'en-US' +debug "removing language 'en-US' ${UNPACKDIR}lightning-l10n/en-US" +rm -rf ${UNPACKDIR}lightning-l10n/en-US* +mv ${UNPACKDIR}lightning-l10n/* ${ORIGDIR} + +debug "creating 'thunderbird_${VERSION}.orig-${BASE_PKG}.tar.xz'" +TARBALL="../thunderbird_${VERSION}.orig-${BASE_PKG}.tar.xz" +cd ${ORIGDIR}/.. +tar Jcf ${TARBALL} ${BASE_PKG} +TARBALL=$(readlink -f ${TARBALL}) + +echo +echo "Lightning version information" +echo ${TB_VER} + +# counting languages +LANG_COUNT=`ls -l ${ORIGDIR} | wc -l` + +# moving *-orig-*.tar.xz back +cd ${CURDIR_FULL} +mv $TARBALL ../ +TARBALL=$(readlink -f ../thunderbird_${VERSION}.orig-${BASE_PKG}.tar.xz) +echo +echo "Tarball created in:" +echo " -> ${TARBALL} <-" +echo " (language count: ${LANG_COUNT})" + +# always remove temporary things +debug "cleanup ..." +rm -rf ${TMPDIR}/* + +echo "done." + +exit $EXIT_SUCCESS diff --git a/create-thunderbird-l10n-tarball.sh b/create-thunderbird-l10n-tarball.sh new file mode 100755 index 0000000000..ad371f95ab --- /dev/null +++ b/create-thunderbird-l10n-tarball.sh @@ -0,0 +1,328 @@ +#!/bin/sh +# +# create-thunderbird-l10n-tarball.sh +# Porpose: create an upstream tarball from the language pack xpi files +# Current stable and beta versions of the l10n files can be found on +# https://download-origin.cdn.mozilla.net/pub/thunderbird +# +# The script can handle both versions. The option for automatically import the +# *.orig.tar.xz may be broken and isn't tested! + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 + +# Initialize our own variables: +VERBOSE=0 +FILE="" +ARG_COUNT=0 +LANG_COUNT=0 +CURDIR_FULL=`pwd` +CURDIR=$(basename `pwd`) +MOZILLA_CDN_PROTO="https://" +MOZILLA_CDN_BASE="download-origin.cdn.mozilla.net/pub/thunderbird/" + +# default package name in case the have a local file +XPI=lightning.xpi +# base package name +BASE_PKG="thunderbird" + +# local functions +usage () { +cat << EOF + +Usage: ${0##*/} [-h|-vd] [-e BETA_VER] VERSION +The options have to be used in the correct order! + + -h display this help and exit + -v verbose mode, increase the output messages + -d download given [VERSION] + -e download [BETA_VER] from the beta versions + (Used in combination with '-d' to get beta marked upstream + versions.) + [VERSION] given version in Debian format for downloading and/or creating + the *.orig.tar.xz + +Examples: + ${0##*/} -d 45.0 + + Download version '45.0' of the locales for Thunderbird from Mozilla and + creates a file 'thunderbird_45.0.orig-thunderbird-l10n.tar.xz'. + + + ${0##*/} -de 45.0b1 45.0~b1 + + Download the beta version '45.0b1' of the locales for Thunderbird from + Mozilla and create a file 'thunderbird_45.0~b1.orig-thunderbird-l10n.tar.xz'. + + + ${0##*/} -vde 45.0b1 45.0~b1 + + Same as above, download the beta version '45.0b1' of the locales for + Thunderbird from Mozilla and create a file + 'thunderbird_45.0~b1.orig-thunderbird-l10n.tar.xz'. + But this is done with some verbose output messages to see what's going + on inside. Mostly useful for debugging the script. + +EOF +} + +debug () { +if [ "${VERBOSE}" = "1" ]; then + echo "DEBUG -> $1" +fi +} + +fail () { + echo $* + exit ${EXIT_FAILURE} +} + +######################## +# We are starting here # +######################## + +# check for wget and curl +test -f /usr/bin/wget || fail "wget is missing, please install first!" +test -f /usr/bin/curl || fail "curl is missing, please install first!" + +# check if we are inside icedove/ and have a git environment +if [ "${CURDIR}" != "thunderbird" ]; then + echo "Not in thunderbird/.." + exit ${EXIT_FAILURE} +else + if [ ! -d .git ]; then + echo "no directory .git/ found! You are in the correct directory?" + exit ${EXIT_FAILURE} + fi +fi + +# we have no options found? +if [ $(($#)) -lt 1 ]; then + echo "You need at least one option!" >&2 + echo + usage ${EXIT_FAILURE} +fi + +OPTIND=1 # Reset is necessary if getopts was used previously in the script. It is a good idea to make this local in a function. +while getopts "hvde:" opt; do + case "$opt" in + h) HELP=1 + usage + exit + ;; + v) echo "[[ ... using verbose mode ... ]]" + VERBOSE=1 + ;; + d) DOWNLOAD=yes + debug "found option '-d'" + ;; + e) BETA_VER=${OPTARG} + EXPERIMENTAL=1 + debug "found option '-e' with given BETA_VER: ${BETA_VER}" + ;; + :) "Option -${OPTARG} requires an argument." >&2 + exit 1 + ;; + '?') + usage >&2 + exit 1 + ;; + esac +done + +# shift found options +shift $(( OPTIND - 1 )) + +# looping the arguments, we should have at least only one without an option! +for ARG; do + ARG_COUNT=`expr ${ARG_COUNT} + 1` + debug "given argument: ${ARG}" + debug "ARG_COUNT = ${ARG_COUNT}" +done + +# there is no argument left that should be the Debian version, error out! +if [ "${ARG_COUNT}" = "0" ]; then + echo "missing argument for VERSION!" + exit ${EXIT_FAILURE} + +# we have to many arguments, error out +elif [ "${ARG_COUNT}" != "1" ]; then + echo "more than one argument for VERSION given!" + exit ${EXIT_FAILURE} +fi + +# o.k. the last argument should be the version +VERSION=${ARG} + +debug "Download xpi: ........ ${DOWNLOAD:-off}" +debug "Run git-import-orig: . ${GIT_IMPORT:-off}" +if [ -n ${BETA_VER} ]; then + debug "Upstream beta version: ${BETA_VER}" +fi +debug "Debian version: ...... ${VERSION}" + +# creating temporary directories inside /tmp +# TMPDIR -> the 'base' directory there we build all the stuff +# UPSTREAMDIR -> the directory there the original '*.xpi' will be extracted, +# it contains the complete content of the various *.xpi files, +# we also unpack here the *.xpi files +# ORIGDIR -> the directory for the plain needed content of the ${LANG}.jar, +# will be used for the debian.orig.tar.xz + +export TMPDIR=$(mktemp --tmpdir=/tmp -d)/ + UPSTREAMDIR=${TMPDIR}upstream/ + ORIGDIR="${TMPDIR}${BASE_PKG}-${VERSION}/" + +# download Lightning from the CDN of Mozilla +if [ -n "${DOWNLOAD}" ]; then + # remove a lightning.xpi if present + rm -f ${XPI} + if [ -n "${EXPERIMENTAL}" ]; then + + ######################################################################### + # The beta Lightning packages can have various builds for one version, # + # we want at least the last build of a beta version. Also there are # + # packages for every single language instead of one single file without # + # all languages. # + ######################################################################### + + # getting the latest build inside a release candidates + debug "try at ${MOZILLA_CDN_PROTO}${MOZILLA_CDN_BASE}candidates/${BETA_VER}-candidates/ " + RET=`curl ${MOZILLA_CDN_PROTO}${MOZILLA_CDN_BASE}candidates/${BETA_VER}-candidates/ \ + | grep ">build" | awk '{print $2}' | tr '<>/"' ' ' | awk '{print $6}' | tail -n 1` + + # going further if we found something useful + if [ "$?" = "0" -a "${RET}" != "" ]; then + # DIRECTORY is the 'build[x]' directory on the CDN, e.g. 'build1', 'build2', ... + DIRECTORY=`echo ${RET} | tr ' ' '\n' | head -1` + # DATE is the date of the DIRECTORY folder + DATE=`echo ${RET} | tr ' ' '\n' | tail -1` + debug "found directory '${BETA_VER}-candidates/${DIRECTORY}' from '${DATE}'" + debug "creating ${UPSTREAMDIR}" + mkdir ${UPSTREAMDIR} + cd /tmp + # checking if there is already some download + if [ ! -d ${MOZILLA_CDN_BASE}/candidates/${BETA_VER}-candidates/${DIRECTORY}/linux-i686/xpi ]; then + DO_DOWNLOAD="1" + fi + + if [ -d ${MOZILLA_CDN_BASE}/candidates/${BETA_VER}-candidates/${DIRECTORY}/linux-i686/xpi ]; then + if [ "$(`ls -l ${MOZILLA_CDN_BASE}/candidates/${BETA_VER}-candidates/${DIRECTORY}/linux-i686/xpi | wc -l`)" = "0" ]; then + debug "found old download folder, but it's empty" + DO_DOWNLOAD="1" + fi + fi + if [ "${DO_DOWNLOAD}" = "1" ]; then + debug "going downloading *.xpi files from ${MOZILLA_CDN_PROTO}${MOZILLA_CDN_BASE}/candidates/${BETA_VER}-candidates/${DIRECTORY}/linux-i686/" + wget -m -r -l 1 -A xpi ${MOZILLA_CDN_PROTO}${MOZILLA_CDN_BASE}/candidates/${BETA_VER}-candidates/${DIRECTORY}/linux-i686/xpi/ + debug "copy *xpi files from donwload folder to workspace" + fi + # finally copy the *.xpi files to ${UPSTREAMDIR} + cp ${MOZILLA_CDN_BASE}/candidates/${BETA_VER}-candidates/${DIRECTORY}/linux-i686/xpi/*.xpi ${UPSTREAMDIR} + cd ${TMPDIR} + # uhh, we couldn't find the given BETA_VER on the FTP server + else + fail "Couldn't find version ${BETA_VER}, correct version for option '-e' selected?" + fi + else + + ####################################################################### + # If we are here the user want to get a version for unstable/testing. # + # It's the same as for beta versions, the only difference is the # + # download URL. # + ####################################################################### + + debug "creating ${UPSTREAMDIR}" + mkdir ${UPSTREAMDIR} + cd /tmp + # checking if there is already some download + if [ ! -d ${MOZILLA_CDN_BASE}releases/${VERSION}/linux-i686/xpi ]; then + DO_DOWNLOAD="1" + fi + if [ -d ${MOZILLA_CDN_BASE}releases/${VERSION}/linux-i686/xpi ]; then + DL_COUNT=`ls -l ${MOZILLA_CDN_BASE}releases/${VERSION}/linux-i686/xpi/*.xpi | wc -l` + if [ "${DL_COUNT}" = "0" ]; then + debug "found old download folder, but it's empty" + DO_DOWNLOAD="1" + else + echo "nothing to download, all needed *.xpi are here" + debug "found ${DL_COUNT} files already downloaded" + fi + fi + if [ "${DO_DOWNLOAD}" = "1" ]; then + # getting files for the stable version + wget -m -r -l 1 -A xpi ${MOZILLA_CDN_PROTO}${MOZILLA_CDN_BASE}releases/${VERSION}/linux-i686/xpi/ + fi + # finally copy the *.xpi files to $(UPSTREAMDIR}) + cp ${MOZILLA_CDN_BASE}releases/${VERSION}/linux-i686/xpi/*.xpi ${UPSTREAMDIR} + fi +else + if [ "${FILE}" != "" ]; then + # DUMMY! option '-f' isn't currently implemented! + # we should have a local *.xpi file if option -f is given + XPI=${FILE} + fi +fi + +debug "removing language 'en_US'" +rm -f ${UPSTREAMDIR}/en-US.xpi +debug "creating workspace for extracted upstream sources in '${ORIGDIR}'" +mkdir ${ORIGDIR} + +# extract l10n files +debug "extracting \"\$LANG*.jar\" in \"${UPSTREAMDIR}chrome\" into \"${ORIGDIR}\$LANG\"" +#LANG_COUNT_LIG=`ls -l ${UPSTREAMDIR}chrome/lightning*.jar | wc -l` + +for XPI in `ls ${UPSTREAMDIR}`; do + LOCALE=`basename ${XPI} .xpi` + debug "creating ${UPSTREAMDIR}/${LOCALE}" + mkdir ${UPSTREAMDIR}/${LOCALE} + unzip -o -q -d $UPSTREAMDIR/$LOCALE $UPSTREAMDIR/$XPI + # use more verbose mode if we do some debugging, comment the line above if needed + #unzip -o -d $UPSTREAMDIR/$LOCALE $UPSTREAMDIR/$XPI + cd $UPSTREAMDIR/$LOCALE + if [ -f chrome/$LOCALE.jar ]; then + JAR=$LOCALE.jar + else + JAR=`echo $XPI | sed --posix 's|-.*||'`.jar + fi + if [ -f chrome/$JAR ]; then + unzip -o -q -d chrome chrome/$JAR + rm -f chrome/$JAR + fi + # removing the not needed any longer *.xpi files + rm $UPSTREAMDIR/$XPI +done + +cd ${TMPDIR} +mv upstream ${BASE_PKG}-${VERSION}/${BASE_PKG}-l10n +# counting languages +LANG_COUNT=`ls ${BASE_PKG}-${VERSION}/${BASE_PKG}-l10n/ | wc -l` + +# doing the *.orig.tar.xz archive stuff +TARBALL="${BASE_PKG}_${VERSION}.orig-${BASE_PKG}-l10n.tar.xz" +debug "creating archive: '${TARBALL}' in '${TMPDIR}'" +cd ${BASE_PKG}-${VERSION} +tar caf ${TARBALL} ${BASE_PKG}-l10n +TARBALL=$(readlink -f ${TARBALL}) + +# moving orig.tar.xz back to the users working dir +cd ${CURDIR_FULL} +debug "moving ${TARBALL} to ${CURDIR_FULL}/../" +mv ${TARBALL} ../ +TARBALL_FINAL=$(readlink -f ../${BASE_PKG}_${VERSION}.orig-${BASE_PKG}-l10n.tar.xz) +echo +echo "Tarball created in:" +echo " -> ${TARBALL_FINAL} <- (containing ${LANG_COUNT} languages)" + +# remove temporary things if no verbose mode +if [ ${VERBOSE} = "" ]; then + debug "cleanup ${TMPDIR} ..." + rm -rf ${TMPDIR} +else + debug "NOT cleaning up ${TMPDIR}" +fi + +echo "done." + +exit $EXIT_SUCCESS diff --git a/docs b/docs new file mode 100644 index 0000000000..5c24349bfa --- /dev/null +++ b/docs @@ -0,0 +1 @@ +mozilla/extensions/spellcheck/locales/en-US/hunspell/README_en_US.txt diff --git a/gbp.conf b/gbp.conf new file mode 100644 index 0000000000..c58572a90b --- /dev/null +++ b/gbp.conf @@ -0,0 +1,30 @@ +# Configuration file for git-buildpackage and friends + +[DEFAULT] +# use pristine-tar: +pristine-tar = True +# generate xz compressed orig file +compression = xz +debian-branch = debian/sid +# default branch for upstream sources: +upstream-branch = upstream-68.x +components = [ 'thunderbird-l10n', 'lightning-l10n' ] + +[pq] +patch-numbers = False + +[dch] +id-length = 7 + +[import-orig] +# filter out unwanted files/dirs from upstream +filter = [ '*.orig', '*.rej', + './configure', + './js/src/configure', + './js/src/old-configure', + './obj-x86_64-pc-linux-gnu', + './old-configure', + './third_party/python/psutil/tmp/*', + ] +# filter the files out of the tarball passed to pristine-tar +filter-pristine-tar = True diff --git a/lightning.links b/lightning.links new file mode 100644 index 0000000000..2053955f7c --- /dev/null +++ b/lightning.links @@ -0,0 +1 @@ +usr/share/lightning usr/lib/thunderbird/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103} diff --git a/logo/icedove/icedove.xpm b/logo/icedove/icedove.xpm new file mode 100644 index 0000000000..bf12bae8eb --- /dev/null +++ b/logo/icedove/icedove.xpm @@ -0,0 +1,204 @@ +/* XPM */ +static char *icedove[] = { +/* columns rows colors chars-per-pixel */ +"32 32 166 2 ", +" c #53575C", +". c #71787F", +"X c #55A30C", +"o c #58A60E", +"O c #5AA612", +"+ c #5CAA12", +"@ c #64AD1E", +"# c #61B115", +"$ c #66B21C", +"% c #69BB1A", +"& c #519A29", +"* c #66AF22", +"= c #69AF26", +"- c #67B021", +"; c #6AB324", +": c #6EBA24", +"> c #67B52B", +", c #6DB32A", +"< c #6FBA29", +"1 c #71B62E", +"2 c #70B82C", +"3 c #66B23A", +"4 c #6BB03A", +"5 c #73B632", +"6 c #75B934", +"7 c #75B639", +"8 c #77B838", +"9 c #7BBB3D", +"0 c #71C420", +"q c #75C924", +"w c #79CE27", +"e c #72C32E", +"r c #5A9D44", +"t c #5A985B", +"y c #69AD4A", +"u c #7EBC43", +"i c #77B548", +"p c #66A25B", +"a c #68A45C", +"s c #6CA95F", +"d c #74BB52", +"f c #5A9664", +"g c #619E6D", +"h c #6FA966", +"j c #74AA6B", +"k c #75B366", +"l c #77AB71", +"z c #79AD73", +"x c #7DB275", +"c c #7FB479", +"v c #81BD47", +"b c #84BE4E", +"n c #87BF51", +"m c #88BC74", +"M c #81B37D", +"N c #84BB7D", +"B c #81C046", +"V c #85C14B", +"C c #87C251", +"Z c #8BC355", +"A c #8EC55A", +"S c #95C766", +"D c #95CA63", +"F c #98CC67", +"G c #91C569", +"H c #9ACB6C", +"J c #9ECD70", +"K c #A2D076", +"L c #A6D37B", +"P c #727B82", +"I c #649A83", +"U c #6F9C9A", +"Y c #73A586", +"T c #73A19E", +"R c #7EAA9B", +"E c #719EA7", +"W c #759FB2", +"Q c #799FBB", +"! c #7EA8B5", +"~ c #7CA2BD", +"^ c #7B9FC1", +"/ c #7FA1C6", +"( c #83B583", +") c #8696A8", +"_ c #93B7A4", +"` c #80A6B8", +"' c #88AEBF", +"] c #9CBABB", +"[ c #98C681", +"{ c #9BC884", +"} c #ADD684", +"| c #AFD68C", +" . c #B0D989", +".. c #B7DB95", +"X. c #BCDE9B", +"o. c #A2C6A1", +"O. c #C0DEA4", +"+. c #C2E1A4", +"@. c #C7E4AB", +"#. c #C8E5AC", +"$. c #CBE5B3", +"%. c #C7E0BD", +"&. c #81A4C0", +"*. c #85A8C3", +"=. c #8CACC4", +"-. c #86A7C8", +";. c #86A8CF", +":. c #8EADCC", +">. c #92AFCB", +",. c #94B3D3", +"<. c #99B5D4", +"1. c #9DBAD2", +"2. c #A9B4C0", +"3. c #A3BBD7", +"4. c #A1BDDA", +"5. c #ABBFDB", +"6. c #ABC6C5", +"7. c #A8C1CA", +"8. c #B5CDC8", +"9. c #A7C0DA", +"0. c #B3C7DE", +"q. c #B3C9DC", +"w. c #AFC6E0", +"e. c #B3C7E1", +"r. c #B5CBE2", +"t. c #B9CCE2", +"y. c #BFD1E6", +"u. c #CCCDC9", +"i. c #CED0CB", +"p. c #D1D3CE", +"a. c #D2D4D0", +"s. c #D7D8D5", +"d. c #D8DAD6", +"f. c #DBDDD9", +"g. c #D4E9C0", +"h. c #D8ECC6", +"j. c #DEE0DD", +"k. c #E0E1DE", +"l. c #E0F1D0", +"z. c #C3D3E6", +"x. c #CDD8E6", +"c. c #C1D4E8", +"v. c #CEDDEC", +"b. c #D4DCE5", +"n. c #D2DDEB", +"m. c #D5E0ED", +"M. c #D9E2EE", +"N. c #D4E2F0", +"B. c #DBE6F1", +"V. c #DEE9F4", +"C. c #E4E5E2", +"Z. c #E7E8E6", +"A. c #E8E9E7", +"S. c #EBECEA", +"D. c #EFF1ED", +"F. c #F0F8EA", +"G. c #E4ECF5", +"H. c #E9EEF4", +"J. c #ECF1F6", +"K. c #ECF3F9", +"L. c #F3F4F3", +"P. c #F5FAF0", +"I. c #F2F5F9", +"U. c #F6F9FC", +"Y. c #FEFEFE", +"T. c None", +/* pixels */ +"T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.", +"T.T.d.U.d.Y.d.U.d.P.k.L.Z.S.S.Z.L.f.L.f.U.d.Y.d.U.f.L.k.L.Z.T.T.", +"T.T.S.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.U.T.T.", +"T.T.a.Y.3.q._ N N M M z z z z z z z z z >.q.=.Y N M 7.3.U.C.T.T.", +"T.T.L.Y.] : w 0 $ # # @ X X X X X X X X f G.Y.1.> e q j L.U.T.T.", +"T.T.p.Y.k q % # O o O X X X X X X X X X X r.Y.U.,.t.3 d I.j.T.T.", +"T.T.L.Y.k % # o X O @ X X X X X X X X X X U U.Y.y.U.<.y U.Y.T.T.", +"T.T.p.Y.a + o o O.@ X X X X O O X o o O X & v.Y.Y.K.m.t I.k.T.T.", +"T.T.L.Y.a o o + O.+ O O @ , 7 u u u 7 = + + 3.Y.Y.Y.U.;.U.Y.T.T.", +"T.T.a.Y.a + o 1 = O.$.H A Z n n n n A S J S ' Y.Y.Y.Y.4.I.k.T.T.", +"T.T.S.Y.a * v 8 H F.P.| , @ @ * = * * @ = , T Y.Y.Y.Y.t.L.U.T.T.", +"T.T.s.Y.a g.F.A 9 O.g.A = = , , , , , ; ; * f K.Y.Y.Y.n.I.Z.T.T.", +"T.T.A.Y.j $.h., @ ; 9 Z 1 5 6 6 5 5 5 1 1 , r G.Y.Y.Y.n.I.L.T.T.", +"T.T.f.Y.j V $ $ ; , 2 D Z 9 9 9 u 7 9 8 6 2 f H.Y.Y.Y.n.I.S.T.T.", +"T.T.C.Y.z 9 $ ; , 2 6 C K Z b V V V v u 9 8 ! Y.Y.Y.Y.n.U.S.T.T.", +"T.T.k.Y.( 2 ; < 2 6 9 v L } A A A A Z V B i r.Y.Y.Y.Y.n.I.D.T.T.", +"T.T.f.Y.( ; ; 2 6 9 B V J ..} F F D D A C *.U.Y.Y.Y.Y.n.I.A.T.T.", +"T.T.S.Y.( : 2 5 p I h Z F X.+.} L K H S -.J.Y.Y.Y.Y.Y.n.I.P.T.T.", +"T.T.a.Y.M : 4 Q v.U.v.:.G | $.#. .} [ 1.U.Y.Y.Y.Y.Y.Y.n.I.Z.T.T.", +"T.T.D.Y.x < ~ H.Y.Y.Y.Y.,.{ $.h.@.o.w.Y.Y.Y.Y.Y.Y.Y.Y.n.I.U.T.T.", +"T.T.i.Y.x g V. x.Y.U.) G.R X.l.8.r.Y.Y.Y.Y.Y.Y.Y.Y.Y.z.I.j.T.T.", +"T.T.L.Y.x E Y.H.K.Y.V.P H.W @.6.r.Y.Y.Y.K.Y.Y.Y.Y.v.v.e.I.U.T.T.", +"T.T.u.Y.Y ` Y.Y.2.P S.U.K./ %.e.Y.Y.Y.J.Y.Y.Y.Y.Y.K.n.z.U.f.T.T.", +"T.T.L.Y.<.9.Y.Y.Y.I.Y.U.J./ ` U.Y.Y.G.Y.Y.Y.Y.Y.Y.Y.U.z.I.Y.T.T.", +"T.T.i.Y.t.B.Y.Y.Y.Y.Y.U.K.-.1.Y.Y.U.B.Y.Y.Y.Y.Y.Y.Y.V.n.I.j.T.T.", +"T.T.L.Y.t.m.Y.Y.Y.Y.Y.Y.U.y.3.Y.Y.I.K.Y.Y.Y.Y.Y.J.V.Y.n.I.U.T.T.", +"T.T.p.Y.5.y.J.J.J.J.J.J.J.J.c.J.J.J.J.J.H.n.v.v.G.J.J.r.U.k.T.T.", +"T.T.S.Y.b.b.M.b.b.b.M.b.b.b.m.m.b.b.M.b.M.b.b.b.b.m.b.b.Y.U.T.T.", +"T.T.d.Y.f.f.Y.j.f.k.Y.Z.C.Z.L.L.Z.A.Y.j.Y.j.j.j.j.Y.k.k.Y.Z.T.T.", +"T.T.A.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.L.T.T.", +"T.T.j.Y.j.Y.k.Y.C.U.Z.L.A.S.L.Z.P.Z.U.k.Y.f.Y.j.Y.k.U.Z.L.S.T.T.", +"T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T." +}; diff --git a/logo/icedove/icedove_icon.svg b/logo/icedove/icedove_icon.svg new file mode 100644 index 0000000000..dab3a99da8 --- /dev/null +++ b/logo/icedove/icedove_icon.svg @@ -0,0 +1,1756 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Icedove Icon + + + Ricardo Fernández Fuentes + + + + + Ricardo Fernández Fuentes + + + icedove icon + + + + icedove + ico + icon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/logo/icedove/icedove_icon_plain.svg b/logo/icedove/icedove_icon_plain.svg new file mode 100644 index 0000000000..7733517d35 --- /dev/null +++ b/logo/icedove/icedove_icon_plain.svg @@ -0,0 +1,1438 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/logo/icedove/icedove_icon_profile.svg b/logo/icedove/icedove_icon_profile.svg new file mode 100644 index 0000000000..f4d9829eae --- /dev/null +++ b/logo/icedove/icedove_icon_profile.svg @@ -0,0 +1,1959 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Icedove Icon + + + Ricardo Fernández Fuentes + + + + + Ricardo Fernández Fuentes + + + icedove icon + + + + icedove + ico + icon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/logo/icedove/icedove_icon_profile_plain.svg b/logo/icedove/icedove_icon_profile_plain.svg new file mode 100644 index 0000000000..586ce11255 --- /dev/null +++ b/logo/icedove/icedove_icon_profile_plain.svg @@ -0,0 +1,1606 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/logo/icedove/icedove_lettering.svg b/logo/icedove/icedove_lettering.svg new file mode 100644 index 0000000000..a2f9216210 --- /dev/null +++ b/logo/icedove/icedove_lettering.svg @@ -0,0 +1,994 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/logo/icedove/icedove_logo.svg b/logo/icedove/icedove_logo.svg new file mode 100644 index 0000000000..885bb14685 --- /dev/null +++ b/logo/icedove/icedove_logo.svg @@ -0,0 +1,2407 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Icedove Logo + + + Ricardo Fernández Fuentes + + + + + Ricardo Fernández Fuentes + + + icedove logo + + + + icedove + logo + logotipo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/logo/icedove/icedove_logo_plain.svg b/logo/icedove/icedove_logo_plain.svg new file mode 100644 index 0000000000..7804a86f36 --- /dev/null +++ b/logo/icedove/icedove_logo_plain.svg @@ -0,0 +1,1939 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/logo/icedove/license.txt b/logo/icedove/license.txt new file mode 100644 index 0000000000..55c6d2df09 --- /dev/null +++ b/logo/icedove/license.txt @@ -0,0 +1,23 @@ +License for iceweasel_icon/logo - icedove_icon/logo - iceape_icon/logo artworks. + +Version: MPL 1.1/GPL 2.0/LGPL 2.1 + +The contents of this file are subject to the Mozilla Public License Version +1.1 (the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/ + +Alternatively, the contents of this file may be used under the terms of +either the GNU General Public License Version 2 or later (the "GPL"), or +the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +Ricardo Fernández Fuentes. +ricardoffmadrid@gmail.com diff --git a/logo/thunderbird/create-pngs.sh b/logo/thunderbird/create-pngs.sh new file mode 100755 index 0000000000..507dacc521 --- /dev/null +++ b/logo/thunderbird/create-pngs.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +src=thunderbird.svg + +for d in 16 22 24 32 48 64 128 256 512; +do + # using ImageMagick + #convert -background none $src -resize ${d}x${d} mailicon${d}.png + + # using Inkscape + inkscape --export-png=mailicon${d}.png --export-width=$d --export-height=$d --export-background-opacity=0 --without-gui $src +done + diff --git a/logo/thunderbird/mailicon128.png b/logo/thunderbird/mailicon128.png new file mode 100644 index 0000000000000000000000000000000000000000..53e268fbb0f58d75b5a8d4d9b4d8469f50033486 GIT binary patch literal 13290 zcmVL5E%sFBA`q{AP|rk#tc-YQmIrWm8#Tu zs?NCgdfq?w8TOfK%B(z}Pu1DO+Uu;df4^r~&suA5cvJqQMV;&h91GdJS@hG*`z|z& za}kcY&_u?{BpUthmakrP@5yf4sV=8A0WSMR=UF734~Zl17b8tFI@%{)d-o9@`Lic~ z_=)b5-M-U7d?&jBGm$Ir*n6%?>dhwUTrEa0v1rWf-2=k|j~yAQ`^f8eeVGGvE^MNMu`!e-X7>^3t^n^KlQ^;e)__H z-+AU+&)fbDljyxb^>z2z`p~-kdNzLR*|M>CWhk&OF}D5t=Ojm5$IL zsB$q>h~P`tVI22Uj2ROnqZkf3B8S8=hmDbg%8_nI@tW9)*E_y{`N+w>7spyoc>-Mh z^Nwbt^)Ce3mFxxr9cf;+joMikh$v;!WjtlY2nEMY-f_o!%#F(?s~F-BvyVVirbq`qg@z3<$AvhUYS+by`@YcKGrV@7Ml(m0k6(Ha0H(u?Bf26gZL=BKx@ zd9yjWceJ#eas;^a-*$Y}*I4(z6sYNIubG~vPth%;wO*$!00u|>us_;XC%7pxZcQIb{g2=Bn>qRo*h^8+8|*wF<3|UVDuoj+t8730#QE(|Rq2WH5xN zY2P}dL>^RH{<-5vmp^kn?%_=2X1(^s`PYduUkTJ!o!xN7ThM-MN?JL&TgVUU z3M2c{WmDjbxa}0l_Wtl=#yDPKG%3w{ZWoR0QR-G!I}0-Q)uB2*3zzS1A$vfjII=s%%f&Iu$y z>j!VE4#v%Y7g2vDo)mQX{8`MtU?m7eK`9p0m2?Z!DO;?ZbMk_9D``vR;E`Kje(0vp zfI49;JRt-)^L@A9AWHsKQ1i0isL+0k`B$vR3I-<7UXO;(z%5Kjmb^NV6RZ8H+mN$S zJ~9$6i^eYB{?LujpU|&A9)_%baOwubEZ=sEnWx z63N1{j^oyc5yXI;Nbps`MvhqGU`1ownpRX^{N(1h*(ana$6C(3@%B}=?YmQHRtXAn zx=jjyWsrrJu0n(vYOg6;))+w$0t);JMk7wPoFmvt2V)z=fE&=AAejX8V!cXj+es_t zJNJz{-~RIPYL-48l`eb#9XH#?|2&pnCCWmyg(yvCTWjjhoSy+d=TD?C7%ckdT5L(h z4vq-60?|XuayHAjXi0CUFwS zF}go)psVb)N`VNWq2b4O-u<4-X4uk+T5)vJ`oY_(wJH0Rpx%zs8Q}A+04V04w~$bM zc`n!``tT-iJ1K&VU>lPHUJ!u_pia4(KN@w2#a+MeBpeda<1pdpM1h_Z9`rRq~!p;DhH1zO?W!n|XivS@`0Xd<&3E?WPt+aEo; zALoiS(+d||e^*&h^utQ&bJHNBG@`965wuGR9rUyCocSoNCW!E}WH2H`#b(STvBlts z!7&C0gJT@T7;2QoEN!JSh=!4fgJb8`=}RQAoFv*9jGp38JyD>iKrTvzJkZ@^c#c^_ z1ED3&O;@xYZoBtaGXgLrGa|sIO~3O+YZ7;h(wAqoKGn@j0iPxWTG6;-7G>4Jtf`-% zo0l+#VLMLLIM|Z%_r@S%GNWJtq-Fx3tGr8_N*xE#OK5aa&?hqaDbQU4>FhZXjBQ9(lx!0Sz;D%DyS?qmrommGGKffI}pJ5{S)7&qJf;sX16_oTaJ}U ze|Yy(+eL%D^m*mk&pYQNY?4D!0D`e`GwaCs!mW?qIPF==(^?qP`oVk7NAy1y(|k#p zDY0<1KSh9w`m#wgd*OJLSTcqs2IYt+#V4uB7zRre4Q17?B}sMvqA`bLkvzZG%4EQo z^rTMlkigyc#gq7BF+?kpWo0CTWd-2nNDe5ee-nZ30WkY91<<|a^UhfTAL$NmJXE1a zs^WV1h9EXOoDzs9Wx*Q{n$J0@NUT?w_o5r02-eUnWGksHp(@C4q z$S9RZ`UsAXp}gs0kGXbxxFrI%oN^`ne%i-tg|alt%KP+OuPg<5WyDg5KNq^On)=GK zul(r?(*Yl*90Q1|UcK{n(fa)SK+gqV6@ZVW@RtXusVgtp&2t>XSY$Zm>y7K5jlnXW zeG#h5stH&D50PLj=D4Q6!0)?6$ZB}rygtdZ02vZwKec1<$D)MB$3SbGP+;OH-3xlk zzfTzTdjh)jr(3V~5GS{cc4b;v_vd|6OX!pJ1M}E$yCrMXmKbHRuBqQxWl$7 z@RLbHIATu_ROU_NE@Aq!pi3@cQh(YQ0^{QZB2i2zg!ug>qVx$s&+JbIx-JO%(m;!C z5Gz}sXayEHgYjITlp+x0cag3~vS zuc;DAxgR&lmFw=6f<$G78n3H=8EBdc0Va(B5e-|VYKq|ryhhb>M1>Z<2E)){BLpuG6FSOl0~? zf$q7M9P41H>N!Mp*8%rzidHzY(L}kU6UV3#F(?E zgUbFPwBxYh?D>53!yDK#Y#|hm`q>I8Uh=g+`$v&u`9$$YBLv1H#Ov!&zI4AlZNBr(d8zZt z)nu(doVT;#wA_AhELw= z9}V;GqLh+!KR?~w^O$?_Daym6)OU7cC2h*e{QN(k+r-;0TLwVG&pYXh76xl1lUPm? z=kNdkbHl&mg}qzpo9p9$Z>-_mvq$*zC$7i=Kb~-M`~03d^MTJq`o#i14;kF9rpa_S z3j)I;)*(1NOx>O~hF7gfC6XvK_vGy>QiEjVnD?AxP+DLVf2!lo6U2)$#A&eQySQ zfJN25qQRPS+-{$VM(|0T@BZTZ3|TcivNOVupBlp|Q}`PiGx35kFdi$O@F|S+CpZ1+ zT*E{`pek}ceO+L9gxWoCfTl z+`qA=xo2K{`7M`Dn*bX=d8=PgUlOHKeqSM^EPx06U?fUycP}8UST>t)|I52rxUe>- zuC-0&ML`o|+&TD0n5BnUzh)Kv{qD4QCR zznnG!!Xx!JqSWGSgpt+$bcWC8B&q8;gaXc9H;;e$`ju2w6)u@tF}JKZ0YqaA5DXHd zoG)Ek#mWVKuGv_|r>~#Qoku>JWBSMAP6@w1Nu-|>&=vOii{}D7*~m$(L&e@sf&&9n z06j0z)5SC$%%O2alS>NQ$?@+hVHffJ#r_oI^BZe7z4c$;Uy1-lVgOO-d%v8~_*9PH z)qXN*-kR>iXvfevE5PQjY$6mY9!^w;bn!6&6v_y?qJrUYHA_~s^0RBg9FP|Ne$U4k zlDVl&p~G0z&Q1lF?4K{0z)B{u9LMdlx$So|l&QU9X1t`yHh4-dO)V;La%# zVA%)mevjZ=l^qJp(|!voMuzdn;#8C=E;%Pge_s!kEiFX}P!Z6XE?f=)ln?C~D67EN z+`_H;YxsJrFetS>-|O>K3MP|)qzM58vt z;RGEAM%mXBrn`5H-u@^f;dm-nklWWU2m~jv4mt6F5p*<8?Mu5DxL|#8&^@3P1Kk@4 zD!)dL#xSEnq(0~#izHL&=ZOfA9iQ+LKq-jKn_d5o_5b^wzkTU%9-Nc_pudoIBpLs& zT(gg*P{yHrXc&Mme&$@d_iba_wrw;vHd0YhQBYepiuYJmBZ$%%EX1)XpSKWSSp_1H zNIFDf#_j9pO%d}&B7{aqS-FuGE zv2O^IoZLDn4^hY?N@Zsc;bn`6&27kno&sdj=-)#MZQQ8dIy{auD+I=1MH5*9kPB{h z;K7HgsxJXD(bIZ4WtXgAM|G4P zJ9hBwv(Iw*<(C%#5GyuRD`1R5SwRA!a{Of##FB2HSFD>yJW2V;2(^CU=9|vs1Mh4l z5SZCyCZA8!y116s#kE{>`4Rx)ahvvzA$ITSXZNmtI`$sn!2V%O(#Z`Vi)0GDF+;

-T$L*{65h?38)gX}`v4AJIOhq=?z8 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 Ef-`IJ=l}o! literal 0 HcmV?d00001 diff --git a/logo/thunderbird/pre60/mailicon128.png b/logo/thunderbird/pre60/mailicon128.png new file mode 100644 index 0000000000000000000000000000000000000000..8b7e74b07bd2a447d7c622424913d7caac9c6cc2 GIT binary patch literal 19586 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�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 literal 0 HcmV?d00001 diff --git a/logo/thunderbird/pre60/mailicon16.png b/logo/thunderbird/pre60/mailicon16.png new file mode 100644 index 0000000000000000000000000000000000000000..16ff89ccdfcebcd5506feca7b43143749f011bab GIT binary patch literal 1027 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf2>u z=YlX}jY;-GprB-lYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt*yOMIo6b zIjIc3`Bj-YIf)7(8KrqCsYOYdMJWnC`RVz=54HJ$D%~N*l@=wZGGvsL6ck(O>!+mZ zm1kyW7Nn+RCV~vr2l4b>5=&Aut)RxmBN-PDGET3!EdAG#pXV4Dn3+9Y978O6dnbG5 zNT*7)$@d>WSFtC3<#rv_(77huew>UwlT5s>?qYSB*wu0)%0fv`M<|G|gM*Kw(BaXc z#@;pw#nr8L+$_8 z58hXQTRid1i;o9OruRHit=@X%P7Ysvw6NEO=IFAZD6Ozf;$nPj=FObJIN_hJdjFon zrIs>P?;b3iGUxouHEG>v&c?a+vT>OF{-CLsbNNs}jN|=vCoD_fTNg4&Cj9vEME&}f zwkMxo+DxyDICkRiiLbJmr)D?V`^`Nbd)>os&cbEVIaf-uc0Jv6<|}`LvXO(uw2Ec> z3Yz}?6THTyWxhqMic9{p!{#HCf*-EG|2*=aYRBDcy-D0lYDAT%%d<{6uI7JQPVC9W z>f0+Kd^z6Q=$H5kXJw}P{|Y=3Hq|$G%Jh4`rbvDZxR{j@US!cC>s0$faOc7x4iB%Z zAC8snnqQM7zc+pP4M7VJi%X5pWr`}2mmfab_)%`zvQ;9RS9A0WFK1Bqiu(0#@9EUL zT}BsP9$j0}v3>g@mt6(FXGg@uBvt)VGS`y+!n^e4TfR-Z^&8LYKkhe4erJ}H;VKvuoj)r8_D_L&iBvp zdw;&u42}@HAy)lf{>i%#{kWsO2Cq7Pi3Pe(oDk{CG5OXnwzS-v2J7cr>M|~AI~EsX zaO?A``~`DP+U))L^m#nT<~a7#P7!Q}t`tVG?f)CQaN8&C-hI3=xBTxjJX`DE)3?9o zepT7C*I(b<gb)pSPp_bw)^8SmfurM9*6pI^Ny-&iE; vr?AAH$)9wEI?t(GxOYL|##ys(|CrnF8XOT=c!L?3!x%hW{an^LB{Ts5g3QoJ literal 0 HcmV?d00001 diff --git a/logo/thunderbird/pre60/mailicon22.png b/logo/thunderbird/pre60/mailicon22.png new file mode 100644 index 0000000000000000000000000000000000000000..9cf772af2168d2d39a5f41329eaaef17012d15a9 GIT binary patch literal 1537 zcmV+c2LAbpP)Hq)$8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H103LKjSaeirbZlh+O>cT>Y;0j5RA_Z>WMy(w#BOmAmzQ{gKQ z0000-bVXQnQ*U*0V`TtnbaZfYIxjC|WiEGVYiV$0WNBe8Z*pfZcWG;BFGOKV#Nq8A#IO*Yv?fG8a1NvZ~-cb z8y5l|wk&9ssz9j}tU_&Zuro~O-_EK3p@&tWwDe=L@DXlbaoznb!BGzj}B0H;bD$ zKlXCt;+8w>>jG+BV}q8PG00>Jq^I(vf6y^a3t^Y+VrFW`)Zmj3Tv6uObw!K$avlMPkmdAz#+NJanQbJMhTKpFHxV(!i2! zFShk;-qqD+d)k*KDdkqW7!=HQ#KvUmeBAx5{_8k7#zokc4d?uSsH*@f%52zOdOja!A+>f(l za~8!SoF6^HxnoDs>YJI(8_dj>amp5@vPoGlRoheZ-^4kVQvo8?>QgpexzRX4=QVx2 zo7Guz<7zCs1OMrrYzv-bCJ`nTsp5<~!PuE^NqyCdnry|#9eXH;9D z$)FE^hsfoTW%DiV#bp>93 z1+wNvI5t97u#rinXPCF}D$1wMlGY_8+eQg_aSJ+1RU9kzH~GR;6iV^w@sjKDYXBq` zHlt6a2q)VKB^r?=g`7Ui(IY1~@W~g5fS;ZlylJfNzFJ*z@)~WYZ~{Tk2VR!zvag;!IDMSl-=+IXyvT zrJs@#KugRgm(>Lf*fPMu-9xWVO%&Alf>u;j1J^-Q6qfg1OA6!Hafd5h|J6kouHFsHJY1myK2gI}C2KKIN{VOs`5xCqywA{ZtTsRZF7 zTpQt72-^bNAmN!~Swj_tvO&2pLoS!Y6cV;Rvgd!27f;5Xc;%4ah}CpWZ|%Rw*!lV! z!ZPN-buS(V90xASg=J6>NgREQVm3v{YY`IP<79?k_;2z6W+y*7xOip%#)+{Li$+FI zIlK1`<#xZbFXOQ?zEV+Fp$d?4;tyt;fWJlf~6psD)Wwx7; zmfigD{xgH`-B8F(JO;#ovH}bG{@BpjzrMY(wP~KWqpd|cc;rX^^z=W)#Kd=!rfFD~ zX#>5$&}G*qz|xhy>qkESbPMo4paF5967a|%Z|YjqXJ$zc1zW`i0+LA%ek32H5mlg#VA+-MxP0s#P0@RMoRD7MpiE n5~+Ie;%|N*T3TAXSE~6B%Q-x#;Uz{>00000NkvXXu0mjfD!bS# literal 0 HcmV?d00001 diff --git a/logo/thunderbird/pre60/mailicon24.png b/logo/thunderbird/pre60/mailicon24.png new file mode 100644 index 0000000000000000000000000000000000000000..e208cdd90213d132d21b33f78c032be0c4b3cb0d GIT binary patch literal 1724 zcmV;t21EIYP)cT>Y;0j5RA_Z>WMy(w#BOmAmzQ{gKQ z0000-bVXQnQ*U*0V`TtnbaZfYIxjC|WiEGVYiV$0WNBe8Z*pfZcWG;BFGOK zW4+{-xw-@HP-S>yOEB2jIpi`-SxO`eB$EZ?L>|MRLWH_YHn=H#ufr2nJr`&Qcs^c@XW!Fvy@M) ziQK+p_J2}$>l2)E2d<59DA-e7=2A??Yr~qs~6|^ z!TnX5>Kv@aa_Ij#jNcjO!udI3GZVz;PGiRBu|<%%!@pu`{50i?!NN+0M5;g#nNqPr zWiizb-`sfh6!lBf&${$`WP9ltT?0PMNIR~ILFadV#MHzgzTa>REs~~rUel_ zcmAz0_U^Q8`5bcNdb?&OO&n{ zctXua*i}Rd2HE_DourPQV5q%=#)v{}x{MZXAkx~8T`7VjgCwH`f;{=yPF~+rrq<_X z{=_tKw+~r&Ba9M?FVt=1>{pC#QJhAMa2UHa)lY(7(Bp_Rc7}?xClr7RjvOs;x)&N!Kn~ zAau9CZFBR3ySDix+o+)FAyh>{wkss!X%Z_dOpN^#!z|L+R7ZbrC$&KxuT$lNtd5yH zgV0*ZWr}3W0?F;Cm`)g0a^gi9VDjzBzZ6#s@&{8f>f5>ywuP`QS~_k)GPCHK%GNJ_ zp22~BqPmWPjWDYe3q>N*3Txx9GCP|@@%RYUg;AU;n5o#+V+#8&9XSw;TXTi*!(Vw& z7PbxIa&&h0B8)1+tRM^nVVPhW2+P1Nn=}}t_r0I&mzugBE8M&7Yvm(uRKi4Yx`N{m5SKCB2eH`#ekhpbYRC{vgZCkoK>OB2@ zT~d88j4;Xwqr!K8d4fHM{)T0l$W9NoSw&dpL%?5eFaY?>_R*S9bL0N;Lwi4$Pp>_9 zrKS<61@!Ky*80_l2m5<_HUuR#qP+0?_r$5majB*zOg6iQ5aJKOQy=lxdol-rJAl(b z5C{Vr-~?=454rBWXU9+fet5q}RaHD5AE{Jg40r%2t;7AF3IkohZNQzIHuXI6=%e4d z=6Itnog6ciM?yquIe6cqHwEi@Do!pC6XQepWqz`1^v*F^d_ z{E*C}KIX_ya^GE{pycQNyPzwiW56E|iQJ@h-8396-8@ZPETB9+J=ts=Y+cPvoGjQJ zU9560go!^Ek^i?y)5gut0!rD@$Hvaigi_Pm-ND?##ni^doKnfr%28v78S`VM?EfX_ z?qX&EW$otXk;D3+<{6~(>)x+w! zP?7L7c zq0QKB>$+pR1C~2ges@n9<-n8FV}F;k4l_5$`U-u(olPnfnKOW_bxCowvEc6;!d;w| z^!()4aVc`NQRRD4`7BbIcf_b$W})}Lo;ut_R?i6OC$z_#fG=~QI)=Pm2kKmnFOjQU z{zBt!7b*PneDz8rg`R;!a>@ySQuOyt_1hK|uE$bI&%nc8sAr|^HO}0ZrU|Gi^_cDp zRc*p3Kyp-qoa7x*awzlaQ>5xSxVo2r{;@@=j#SSQ%8H225j<}{H`7ZO=GB_|6@@B_ z|E$w*VB%vEj{ZT`?lzkrr9_H ziG*c?oP!J5WBys0*)Ic~7aeC53CqjPy>~|>%QfE{A;8-NQh$L9|12Z#rr*$Ab|pg~ z{r8*Y(!_U3BojFGeDPDoV62~YQ`>vG0T1s1kF}kU3tbWWx4$~cjGl+{N$m_Yj{*N2 zMc-WBLM(g^W;tQKh$=2O1CyG%dm+CDy)vx-+@DqT&fGHpdDLVTdx`sxg+TJ^I%d&_ zX&t?Q>qi{iZLweRH?b^;aIEu+l-^~IpfnZ9%h%i4Oil`J^gY8e3*#(=G8^OXebqLj zyH1eE6l}5Eg)|+bC)<(Jvr|>S1F;oN2)8rn>|$c22XotF-5xT2FO+_gCjTLo@+9r; zXTF^9)NNe#pK{2tqyg$}o41c*B+L{=dNn5#MLK$S-?b-!G)^xzSKds7gp@tOsXtQTr1J#Li=PD^Qq*Q7J1R2H zp#%9oUIU56>QL4Y*V7Pr!*AKpb922mKPTWmhuL4>UlnE6QTVYmrgk54_Mvo;%l>IY za6DjbrPF2oQu8R@Z7PB6c@1R!4x1$R%Hu&BkcF>k7hNW(y_zI7_EUz&lG{PLNM16V zSHUKA>2v8UlUL2VO*7c9bNY1Hx7A>7(R9j{X{bt{6@OEq6eP6hJzc5N?%=H?Fol|@ zLz}rI_E!*N@^&cBX8k`F~hJ#Q0?BXMC7Cxy^nLaB2re}|C6Q^2|I)&;Fg3St89ZR z{CK&v67j9P*8`H-{vc6pW^G&KX%WaWONE}sK$MX=8o;7~GcGbcrdTI?;t?d;2@L!_ z?XwueHcgS`dCR5Rd2pT^uk*S-fjhp|fAXJEiLpM5?5!WW8%p?r(OdSn=M%m0w8%Y; z?M+gR`q*vn%jPBd_myeZ-nYry@We+&jj}Y2>uv_fXvLjj^mfB18}Z05lgAy{V;!MC zh9nh&zY!OgGsydxZwjD8mZq6fm%z1>bV7NzC>qlprRVnPNAH_=jpIEL8q(t`Kn?K> zKd@pqakHeZsd>YKBPXop6SD6q!?HD4oD1yB=J$vqlnriD#Rj=i=$7O^Y62Td5 zEnNSh6M?5apj@3Xxe?iacR-RNk!r-EhR?Rk4_MJ~Aoe59s1qwJ=DLHjGlXOEp46u& zPDIQJ#5a8$M!2#&>@``rTYN-F`fc+|QaVS+5=Kls&*k!1U|^NiK$i|-?|R+TTW#Y} z=lBGO)+P(OONwb)>9xmV>?|Yox!Lte67ySL`$N0kyTP`tm`0Njf@$+vgw3A-e~Q_t z=+t1X!|wXfyQ+JG+hEVaR7;22zhGVR0X#XXP)I4zNnvI5t{UbwcFHDLF5Zpk8vl|f z_0fo?-9!aHKA=a>B_Ot8UD3+x$1mIuUu6Vi_;wxGu7z@4`LGpmdfBX<*L%5Ln~Pgq zwBX)Hr;Z}5N>vKvR_1jiqQq`J6%8F*a8UBh8{fWlPMtGv#HTMuAuL>Q#9+edNAS82 z?mZ!_nISfJk#1E&^Pj8O7rS8CeT?eAi)7w=_qjq-O=-;jkb7*2ttcc-If7A)fv%`# zbK8y07hFJeT}^tow5J%Z&V!}cVoz2?gJ08{q^>4>hg4nH20ak}?XzaquQ4-X^h&_X zuS6J|@xR0L+WxY`=N6LargvP<98(}`Z!_>Gr^tUN9&8dk0#0tvpi zH3FPk?jHJ5xn|@`duyn#1;Ky!VU@gSH2qKu@zi1D*m|t#HbtT%G&4dfm^gCt%@#|S zH7dQ7lnIDIb+GxL=sBL(Ja=A1iD#Fv!9QSnmv$P|DOpWQ_zYtBZo*h`Jp~UoRJk@q zcW)LI#?e61iH>CuF~yh~Xi$dH4X!$em}vZoInixP@RD`mHzc-ByRg1OO+|f4l(GOn zhHAEMj0q$ST<@PA>b;fdFsWFIa!;-VuWR>MD0Y>hix~5R^|WOcrc!8VTr3t;@DVlz z!W0Kj)<92x;gJDPgV(A^eRt`~;=Rf66B<{AG1c~z_vgT=V>rQB>n!MBwB6UOy#ZXjuq?A7cAqb3cPs@u8ZiTqwi*dvjVfXC5^{eg9xG#CD$?x7#>(m= zT^&CD%lt}3e;;+?IB-d$i|#HlGl9K~M(hZ{jbv5x}{E`^@>g#D_}) z4rSFbaNjybhqW&a5W4qsFwMT9$v^6w(9#^aw7T`)GNBX53@f z?g4fe$cFcU7Dr-%V6BYE`U$9biKVetzd<>ScbzN)o|)M+P!$O;Ra_}q0BRO+hk@Mc zqW#6|ZU>S7eeJCM!b&VS@sD)X@)}az&xb1AQSEtg;-DW|kJCO^FWD|-QA;uV;@Nj{ ze2Rsly7cHkFKSI#=Ud;JK5n||NWsrqB9=$vsnrfM27?qE6BNah7IJC`?`(&9g2%F=+__D#<>F$|F>Sf8mt^o-s; z0s{HBA$#lgc&Gz*xVu%<00zKt4S$KwJ=UdS{>&b43Gfe^u819=`?Arxnghqr7cDK(IEX~yW%)nfl7YT(kTOE zMadqFHGY;nwaNl_6&>6F1zYM3|6X4%qxINd3L^NKSQIv>~AQf(=|*2XHR@$V&>I$a!$PBMdvwI>Z?fRt&OO#f2tl3<}ek^#_^gA zL~zayE2$-l3BLT+ciC!vx25nN8pdMbf&v=cYrK!j)xA4j_oZF`DEs+PSSFNRwtuMK zimNK4g48vMW8f=2A$QZ3{ncL*i%8+MMWw3|^)>J8Tjmt*KjpbEYre0MEaJz*!HLF1 zIMppd{DMgj3PphuhE%t$^lW^#SUw4`D z2g$tjjxZaSJh17tJD?e=K75ysg!7 zr+dxu_1VcppcnI7lnO*Z-`xzCN&Tz@z-i@wRVHvLPN{h|y!)pGudI-iXeKPIZ*q}l zpADF_68uJOnD6bmKK~|;CLAoLAN8U|O8pT~+blY;r&Qao(aDf-iHKyxf!6oHIzUP~ z&hbS9ihI$ZT|JA*&t-cV@&@Q#@b=`Ltxks4Wp;c@Od@=f#0Jco$+G(JVH!)JaUvf5 zr5If*{Ys6!jj*E zpzt?DM}!ykuAM4(rD^=9Q7$v3sRIc~8_vhybBAXSkUhjQqdQ6d*ki3BsNb_Wt>b_H z>R7nk6E{(Ak(n8fLxts8Pv2&33P{+{%hCG2bhdE)Da==26oLlkx7kpl1zQ`<2@zef zKdsIqLe5u&Ed^ypvU@ayse@&V^$}X=zM#XdCkEeY*xpD-`ps6>VUhBI7`!TB{o2IB z)w8d&g!Ndhad{157?GeUyw0REWq`U5q}e+os^p~x&Q7uM8hI11H^Fs*ckj8oh&O-c zt3#pDdg&b2X9GC}Te`>wK3OYwhz-pw6>`*Y{{rv$_MT$%p^JjkQHiEgo&6R?G2SzO z1f&oX=W&&YqXw&2Ep`SH1MAZIbzsPhe7}I|_Q&_R=$>0@q_WEcQKK!zJw2sPR7NT~ zVk%d^w*8hRDc{6VqIwPdH&k3;a=EigZv_ewT?0c$yv%hyb)d5z$}e8GKNk9*i*QHE zd=vcDUS6G|PyV(JaNuX1`r@)QwFsWcXhuYq_k+|>&)jk#`~ zk2B~|WM~3HL=9`xvGmY;EGIIb$k5cWJvE!5AQdHRZ>Ko7i7kmFQF+e7*q4Cdj}TXoALLx&UyCirGfVNFaI>?o ztPoA!x_NN4%6nQ8XjdIz)`pGx-DW`(T_|Mn<6j5m9If$nQrl#i?J^bGEYp)#z0!WW zD3i|4cJCz$%Qy&Rht2wF?M-q0{-08)nZTn;?quDJ1%V<;lf^feZUT77u3d1<*?gk~ zm@YwLQW8+x!SC>*{PUB7lO#%qV9}l1AaS^A|4}}>;JJvfA{JYH6I@+45}b|^|5t#g zumKU)XV8=X{P~(#oDHFrU8vMX88d!q9dqAUAqI8JtP?G7ockt45uVV+_CReYmo<98 z&^?pJErl@nKEeNlPOK>-%P5Ih-27hXeeSsX%9VO;c^)c|LsEuaSE7hHf)Y&y7p4&Y zz%FaGo9m~Td+M@5Lj*brViL|D{8p_hl1cTzLhYFGYX1T8-0o?t*J&zi7~NCDHLE4OIIS@L;d+pV}^& zWWtn&d~P;dz5iDt+BAHgk8x!S*dwUo4`-SS3J%6_sa37?xdGLEVw#xVKk0P)#~3|d zm-IVJMI9^QyOiCiUv118qxfDM@kk9dy2K!-lL*B!SM(Zvi-mD^5nH?M^k&OXnPaEF za3yGKBW9mYq$o#yJ9l-sev9 zms6|Ra2vgE;LEjcv67FSj>=`WZz%(HK@{%Wb%jjAHS`Fxvz#3H=o)9&)7Q|T{Q*YM!FN|Q3o zAfzXQc+9`2N85zCk8GXSW#Rm$1+dBAA#EIpnvxia^V=>($I8Ycj<2I-Yh%P zXV*KAsUV#WftHnn98Hjb_k0euktse7Sd~j2qjdpnnV>P9a)Q_R$do#Dwp45sylitO znLt2Hd(2A_P^{fEd7%TkDEFG+@f<#rlf#=u(G>oEwjcPbtl(GnwiKL%IP-}U-Gz0Z#bj-~+;rYm;nJRQ}nv8;ck&udaPnf>D#DIlP?Y@}bjk3FY z!|}8E*i^DQMM!j!3f3_@!mH72VKTD@tAI7$u`%PHRt9M+t6xts0|v7Kj90$3)8H+6 zgqAvi(sAE(ss{U%3VW=E$#kcU@VQn^4*}scN!HXJd*P>@&QDPEX1vRQmTZ?Hi=$wo zc%}V#<~~(8P}t+~(+~L|_947a4@VOj5AGPUY+k1cqH4kxm``}~0%ved%iVjAzqb@c z8K}uTSR9-;S=Z&t%z`yA33V646AS#~Oytj_5H#(RAHo z9s`f55ww3-u)pvt?DZAVeHeImOBX%hWvE6)BE`7cSh`bg!9v;$3>9~1Xs(;v;OBNx zuJBX&;O$C&CGuY;$A8?}e|W1R1zRYj&c)U;);NpgyDS!~c~tU~=N%Qhfi~+{BZ<}3 zYTKmjai?#u{WhzN*h{gwq34|amwq2pXVnuC9T(KK3?6ya*!M@+_jSOftOjghJ(;Hc zXftTT1FnC`%Bv-;Ex+=Q!{+H!&^UN>H+-Jz9TmQ2y)2=47#BY(KyV5r+WhkzP;5Jn zuNQ1Xv;j`HcXJyW7*!EzldYsrjG&xQI`F=Lbeq$2y3dOrMOlsinG)Q&iSFQbWrdQ zk5KOH^`DYuD6x5GOV`cVN938&o{jgvvM|yQwE#=N( z-~-gY&|np~6IPaRm$B-0S0OT+?s{ck8$6W&0l(P4-MnU?1wa8L1Z{8|&<{};ffGN9 z%;cRm;eJA`&O-dFm} ztno)Y?hazKlq6mD@Xx$J(URu^!pqvR)+aQ6m(MYp!u{#){=%KM#NquH3JzJB%&$;) zi<1ILRR1NjU0|j@)OCrp_vtDb^%h#1r<^9iK!s zxbP446-&5eEvB`(T>T4#EJi!JoG}uGX-FNx!PYPL-oIIHm*x}57!=`KD_@Gopt6(H zD5i)s`fkkN)hzk1mTQwyN^ z^^h9$;p~nSCsZvN5329gzXzk}qv(~=OU5?N1gWS++Eeyt zym?83CIdW)_Pw#f=*56*TV4VcJofq^hCc^P1;6M?+w8usT~l3mWPO1GNsxYoM4)Gg z=3LoFA}c6bdt{b{FxoaL7Z?M{qcw`_V;XuQK~MwMzHyP}PJCI&+2AtMdswYW zN&x-gE;lO)^N#kIC!HL#+wHOpdSVc${ZBkGdJa?rJ$D}x-j@lG!!=Z_x-lvL>?|eZ zz-IV;!lu2(!Z?p}TpR09hE?9_3bq$;_KM$BCEEes;(EpF=-k_)iMPXdUDp-lMn8M{ zy#~H9^7WpT4|D|?_v2NO-&!1{25)=%qiDce4s*3>iGj(n&Ec1d9pU=?Bl@HoDuz0m z-w4a3Y%^K4vc_~&HV)afM-Q0Y97%;Mt=KFQ3kjOzI7rz3uIab^US{#Ht{vHl7Vd~f zwkF$O@+>dD^B9(=qgHIGlXt`tzV7!*`PaRINh$T0P)UA}x1Kd6iuD`Hm{xw4Qj)@P zenqqVAhlPX>MF9fA2oJLGqd3L-m1tcO>XXT;)#IShC1)76B?x{IArOF#Gkdt=8I~? zeIeO#CPDz4s`!!l&T^-L&vFO0RVi7IO54}bjYSur?~_nPISy|kuArND7|Q~D-{8At zh1<29*7~Pcd~lDY2h&Kfp~kt-Dbi}YDaWaabcW!EPxbchYG5zUmD!3&Os*4aPVnOV zhST z78j~l|2~sEr~JKNi`@q8qx_zrH%P-9G0S2j9otSDPMK5Z2^j#HghyxuhzYc<~PxW z>7o;2x(OVbFEp&0f`+p}0Qi`SNvm!vaDn%`&>VgRL}6L7i9|_?i$@=HB~`mM>?y2@ zx3E;a4Zf<);N~w6n$knS+P;|&bU-tD_*MgdovF-Z!}TS-(iZCT#}~1yEh0P;`Mjh? zb)2(p8&^BE7axfH&r+}FsETi6!ts6a2y3pQx;w9q5R>j-EPU?~;~~Z*r#o%z(Nl1Y zDo0=QoV%7jW>WQ_%ePzEuM$^v7fTK+*A3_8ORP5_|k#% zoBRZnR6e4{lTr&28S%U`bly?m{e5~EnLuv*o@7kU&4m_R)=8rh=$YJ8%U{{H>D40m z7j~sRFe20}OFDkQe8RGgU0RlNj+4Ac{d4JxxA7+igDL6I9A?$hhz%`Y$aLWEygw2? z*lya-P&oSAFNlXAe2RPgm6pEsEoUkKWF+zvziWZI%PdnAvtzq9m!Z2;LGJgB2KJ(E zzwt+1;EU+<=%*{@Qbxh8ScKj>yxYh|(p90jqZfC1z^!TlQg~Obz>6dR00Jx0)7Tko z6DUB8cPX;i^Etq2bEKOB!&h2oswbJ&=%q1=4dL$|;jNe-D{Ivcv=nWFH}%k`!#yZ>ZC^0{nS~CDKZh_-)r?Ja_K2;H^;K zP@cd|lwE11@{{Z%_&yOGKpVLpP?)lGje(`?kJxM#8(Ck_iyq@ENLxyi7NHMu3zTD}Mf>&x7uD5n2{_URIZw-UGgW{rtJ=f67;UOn#=uR zOo%Bem|XGw{{LeE(v~LDehmS|pszAGEgr<2Q%8$$p@BJ}$Z1h_6gx4M z;WU8Mm%csQZ|-+^i+}isj&xa;G5ic3tu7tMa9-_aW-}Y7+ncV<^kzbCGW37?mIZZk z8~EHxO``+x1jq}kI*+sJulD%k$DdtW1-h{heWlZN)kX)1D-R{CAn3CZ7wSE%JgxLm z4tEMB_=0a^X#?R_;9f_3$&I}xJ3g)Vo`WY+s~F$|rtgV-1CkqPTnp(bq-bI|oGNM| zvBS=+`0XB~39EMNoMAR&1=dlYQVkPCxV(kkO+j_Ju4C{qT(X~4C}_o;6K`G#^)gpR z1Bwipqe~F$lMSWjatAxq2Yu#7(2@;W8)s#P2qT=^Jx{pTpnWbnD2HtECI#Z;m5wu3C*%>@a&7|zPW@g-~4d3@` zksnBZ>6b{ez+YLG{Q~=feG5-ka_9w;M1E4r-1l+9Sg?g@~HZgw)T-x4&0$c* zxA`&71H&kZdD=l;CM@F>IS4)FD_r^oGj8k*dINQvPYMnZ=fNX?N&Qm$!ME1E*jY?9 z{FQ0TGYvP?IHAQQ5znW-4`isI5!BVqu9k$fH=8iH<$Lerlj8kY7281fX1STHrjs+3 zWR(@K074aJ_=bwnm|%=&!96N2``0PI*&W+QVUh=uyXARovwu|%+L-Q38LGBh-hqAm z&po@cs$`}PJ%0UAj#eHY!cB{5MFQ#Zwc2dw^8vQFZvQ1X2;)k8wStE|?z&ovH5N^D$Osa0g;Y0LXqL#@W$B0 zz@x!}xAurvrLqmJ%m*(if=Lo-lsAX<50vv)*n3-Zlv$3kX!LenHx zxSRxFpCx$b^|vUCJ|~^Yl@-N~xi_a@q1ZKDZr`I}Zgg_}Wtu1ULp%Z!s2$L-Zku7r zLHMx%4I!$VFIeit?pLAo`W~aHxqBhokNC3rxyJ7ol@TQjn)j0Tz1X06-5U+6W83Ut z6C}1R-mlaqi0Mk!1L0%9g=FH^QX#l~2h$!JX6XPU3=-5k5Z zwkC^povWv21U0@P_$J?Z44qYZce>~`@5SsnPlvwfrO#y>eX_xR>y~e+J+YdUv#J=5 zRPQ=z1uIO&e((7kMw$mpm<@TufQ>?Z}g6@2MNtV0LDr4p07jq z3CIC8+=zL?W5L~ANQGxO-P%~Re;MrYh!^#iH6n8+KYEA+`C?yXnG#8f4Xt3mj`lb_li3*Q!YW)KWMIxtjlB8JY|7$v&1+Y*jeEHh}55gZ~qyPc1hf+olggdtws zR~H0KY>QRPEpcd}@nc%8qoZw^qqMu9{0)(XRlkU)j5rh2sj!w}FJ$KN0sJf>@v6T9 zcfsB#ZZbqb5Dx`J+w|bT@qQqVsx^;q!gt$M-f)dCQ#@tT(D`XAclrkCFBGc4rl8@9 z&zH#_YK`lb1C z^74G64WV+e=vOB4!d`|xamQrHlviTYe3NYgUWm};_RyU{)ps^<10f_v8!B zpI#d>1w=WFYAk{^_Mh%O?ZjI$RwQ859j(yjQ}GnphGIg`z+gebGu^=wW-@7%;5t05 z5i6e_yg?@Jw;tSCq+gZi(+53|XYX!55d#%Yetrq+8xJ^?JVCE}i_9JYP=Z%R910q_ zwAsnDQlgqiJFJ#z0dGgLnR$PMwOOm7w$At3WP2KpeYK(Alt&^=t}64pg2>`DV0)Lc zO&85N)I{jPM$<=`|JIvckkHZDYPPdnw=%eDQzaV*dxs^y?)=PA+KdJ^C zMIVh{$=@X!*nir`sDW^i42W0tM|99z7>P0!4g3yf0&^|s&z*a5`0#<(jlXMNGML!f zzuuP7*Yr9vmK7*0ZunWYM81gL{#n4}r*Vd&A=vDoYKEM4h7qMSBYMt;)7Y)I6hX4| zGC#vumZSRJ1ITwC97W_S)k-byxGUyNeucg(`8P=tqr7J`cKfjE1YTv>AoQxMxd@Nd z_R@l@;Un{3jXew87wAOPTu&DrDnCud${f>20>B-n6)DPR&mnX`wbF$hL=3B#iHr>{ zOvqJ_xeJ`@5Rb8xT6<_%XBitcLu2f!)di&(ogCWl{-5jjh`Y?nwZ|O1X;$w^-bVZ! z4XDC9U5K0<+7}Lk(#~ubmZ@#&BsQVX?-J8 zUCE^}oWy;2CgGh~#doZrB|fx7^*a($y)9)I{R^J8d-LOhoiQS^x;*N0WbIx;|Jm|% z5jYuRY){X{=wj&S@OeZ@FSQaNjtX zcpCxge#Z`qL#N_qO;LwyC1>}_>yv6FeLWj%AHjnT>TK?0>N;1n^c#<8ii(sR9ZfK; zBTV%k;4qy^L&hX8s*!l&c z>2?o3%FdC+0=F>;CqdK7`}~6G$jT|eJqi#n)|rHGAmw#4R3T3Xf@>i*@kcx6-%$c( z9OX>8$GgN@-L4v;v?p&cfKl1_2V>Z#{9RZ6NRAKA5zuqSq43}BqET?eOF-m#?HOVB z0YTKGCkvyqKGY1tuY)RCfM-ZftXM2{*!OC+PHIChfG7=JXbhR>!mg=BGxy6Nd~&O{I}mQg30wI zsirQrxUia8rFoZIMEq*_av;asYZh}&3hQV)9)Z36m-6z~49thWp&QY6fd@TBVyH6- zpwHk6s&Zr1KH*lq@bDC16F`;GwI3!gO40BH=xboYsA#+SJt!ZYRg+qMKuRL<`3UVp@qgF!b{TE(xJAtJK6RJ?YvY7=GaMXC0^vyzb!YSYb%^IvKbn*Lf@yW@`_UEB zf|eQ>wjwM;cpY;Ro53IDB{i1{O=02Ek5n1K7nhd$QW=LK=ig4BYZRos?e&IiJ5UQu*kL!7-D zA(33qH39#ULm2RdBh%8f>(Bs296v1PR3_UF%+I#f6O&a*dfOQOY@@{=CIqQteM5!L zL5m_C@TX?=#RfN*T}0_4L0mo(DkY5Bk~YNT{Q4U;EU?B{dc}Sf|6&1YyA2Vo;4ZB% zj)4zEAsJcdHP0!kR6LTd5_1ZF8u{u>e2^+EuKD@j-#dg2NzbCUhwQ2c1=8mWM>YN% zXziYz^2Bs`FzEPS)R&o*0xtX^cYLj7Nd@@@&f`n@FnCF=&DwZf`nq=W)Jw6h1ec+Y z@_rB!fde5>C;Q1DT&YK?^mNaM9DBZihRnhukm>h_-ia*87aps*i?|FiwSP^^oBI3_ zKw`mdA0Un@Nd%=-ji8k5Njhwkb%SR|-AV=6MvnOb`tDj*HU4c-w20pyK zZa%Aoz_l|maN*P}Dz8r-0vrh+CWi+%uFUwi$HZkhBrNrt^j1UQt3mJxg@_#N8`~l* z0G-|vce7&?B%@M^JSLMm2>UFDckkIPgLMd|5fT)gt% zI9Ptf-e{&cR)Ggs)xhAf3AUxKJu}_W&(@Q721zIF)Y$9BlQC>dHRokq_?6YuM%_3X zlF51z`^l^WugB2?)}?ft)%bB+^;f|I5Bpfy$yBT=Ec^J~- zAGX9;kTD6T>;LcNg3B!TTMf6Np>qr1Pxeth*~tBCS+ty?Li|s+>qaq80T}Q@YhF+p z;xTC#Y?^;z>HB18GUhgxG&5#-W?^#f;Ak98wT7Eaqn$yG*JSfsNo!98`1s+|m2FLB z*uigoU?EQ@x!Bj{)9?pj_Y2X74MO(Ub=3W`8;Q{dx(dzDw;inpVJ2{~;qC`tNDmBC z+I^m{+u;I!)XnuD^JAt)GOZS-Svc9PSzpSnzVHDQoW>nKg9t+*Sfhwc#>=$M4l zt=Rr>yUn+k_p8Yq*FH67N+*q1Ik@&yrndaXd^~%eTi4BJZd^?;9%n65s#)Iy@Hp#J z_#q+GYtyqZmIJ>>=10O2-xuhu7-BvlF4w-Fe?!W25;wSHu=$bS^5m5>vaA@6Fm{~#9a{Uh*CA|6 zCQuw+X~+`8dZWz|*LwY<-yOB~D(i#0!OsxkdUE~r8fO+4RVSrqSg{KYqipr1@<;l_ ztr(@K3y%j=i=2;k75Uygya&avgBhuKzb}8snv{$26Z1^%I%clOp!94w!%;L`r9T?J zzE6u?w>*^>%*uo5=BSI}n~oib+ZuQZY-uqBGVXJKCdyO4(u8!Qt73srC&R*tg8{$Q zH-(~`i#ltv3jUPdzMhc06J7|h`l9D~;2MLITL(L}0e8+wlz6IAgv1!a*GKjwWt|M8 zU|j@8c-T-I?b>q`4@+nNp4ZaI%GAwa>W-U=i#HT>cgg}l2bDx%x&PNkGoi*)onZ+Uge9=vW@ib(891%V)FejU+bm_4U{rWG4z4 z@}*2*U;EeMwX1d%$g^*pQtb$_{9fF4@WWai4tNpm#qmY!1M)9Rt9{4nvbGrS8eWjM zlPBqlB$@aV!QyZ8lDW&l5D2AQ>LbW-wT`zQG_Pln;9ROWowxhsMoXhKo$*Q04jq5F zc-Jd4Vz31rjp+9Rci!S$Kv0VFolVWG7Qy2c3*?Cz`dSfq}x5l zqc80K=jMxeEHZvt1M{+iTJ=TQk)AVy0N9G*b>o=V%cmG^kM?_i7En-vQH%cBELG7=x4g4c@ZH5?3 zk6ec+P3wJbL|J?MJ12fKWFY)Fo*9mJ`{bf9A z)?Oic4>{bl1I(TM$VvmZ-9YHa;+Myp{glWY6q_KAKm4-2+jG90Oi$s<9tfRJzd(TB zE_ln%dcZpO`q8MR8p`U0hYi%MAPwig)7&lIFUL#YYhPml2gjWO!H7!+lXaJuhr{cj z6GPCHB%tG~tj;fUPGZe>^w97bC*v}#lDeJ{AmHUE)|Uy0K2{Pwi}VR;{w*r!xMEEB^pkDbKD!p>j7F(=)!d)dt3BGFqoIGCTUX zO=2qMhx!u_vHlpmeLv*KV+T-aW~Tu`lTBB``BAmFdnraj&(@q1B?J`|S|=oMo=cdk zjZptDJ$gI-@psh1?!gPQV+>gx0mNa9ys`i|M%5?h<< zul~_Y!WcR?Km~^`7fc^&1?gdr=!t%%!`*Lym2!Fll{;FjA7pTGb4yuSF;r^C6w`q* zJ%e&W6~6y@>en*yDnKfRgU6pfI`%ukM}|D}uzu+TL`KE435dNaq=#;UFWbV$iV*ss|la{Bq3m)exKAkCz7 zk(L1gc?zW=XB}QfPX3;s@z0O` zQ|a-vWmsrKdZ=X!P+M#7rt})~P*5A)^B)KVU#u47W4?hGg0hw_b3uDF>k=Siz(M!7M!0)#NdUO75FFD>oter9FKkiYq1=LvEH%j{`(vVxHL^LCwB z58ujQHJs zczQ1y#5eJ>`SuN8@U6_4`m)V`UPNh4!=J>hNR`-COLIRvTA);&7Ul5jYTd$XmbDe2 z88MtpK}gFoP3lZW`#_CH<*V2s?KEt>rRJzC|DOkX&j zymYWK?y6t?TPJ4_bs|^KX1I_1kX$yfPJdpg8Rb{19#5t?Em`%pWGYIE=SCmwj$_hf#*( z%cztn{SSmVS%F{_#qn7T;=#f?beH_@=^j*9ZcNWinP;=9XRVZ0GawFE+;PFdLeM@F zjXN_W-;h+|ge>oa0p(a=)ywHSSvi0BdlN^{)EVTsqp+D|zDPcqVXmPiSuDTq%5i&J zzWscu`Y*RmLgl$_8swY)jcXmn?w|3{AKdwG`R@uWo4)GAK?fEDA8FX>qNgpek%cA` zi3&H0)(%aG5G@p`yANM-#4jcI(b1ISYlvznfouI|96A>twyE}RA|D4@ffCE3pyc;xHg&Ak zy|kjbmpPZV&(2!v_f=~jf({7KRqx3%S>O{6Q@#q;ASU+HBNUgld$=?^xpiv>4qVw=>!tU)xa;)WAlgIy2^BmG@+dIjVj}D0UZvLJxBND5@`) zb;C{jigIbSPHsw0aLZ*j*Kg_Nge#RhV^+l>6pUj)3>u&V^psVxdS@QS0kpX{{6T}Z zkgJfbys_u(XZCP$Nq(08})B?={=+uYJ`8iM7{{0#q zbZWF{`^>KE^t9Jog2x+z_p{E|%U)mhp_4bo4K3!<1@0mGtFswiz-NgXH5hmsDB{!t zM@g~O2DDDjf!DBGFOum7oVH4m{rb_zT>?(;@j$c9?4*Jk6nf3tT^HjPFLltPVPyXx zDqg&(q_+>BiUUmVnkcX=D~w2T*e9`pT&jtH=u&p@C23X^Yxo4Q_p+#q#p`=hKD=1u z!;v^eAOVY2fLJ5uHmXifUey^FXQC;8vT41nhO>yDstIwQ!Oho*+$g<$g++KvNpW^M zbI)&qCOOwG;XT$bz{V}>FhAFb-6CIWQa&N59C_u#M8oLeXl;zE`Ku(=egJtO^)IMg z7leXl@YPI}Rxr0tAu=Vr$|CA+r~lAwD3{Vt3pE8Q_{?vphA!XKm-_&@6a!ffagTww z2mXWocgk45w`V4oZjZblP6R~XJrl0D#JFNENduGVMmdh2Gu72mk@O7Eq)djDn&u?l zdJ~c528`eCNk%X7c4J>^kMd5nm!vsMe0)#3pWO`}BK}Eyn0r_%KkwZcgMr&Xr7Px} zJ)x}idsr95fRGzvd6@{R)vf?|X2iKW_Z2DD;JNJ8u5qwZQbQ#v?mSVd&hRuv-!#Sd zt8sYFwYaEz8Z-YWYYOVQ@OnWkP8S!@W3@FOq7nH4K5)Fan+5#62@v*tC+0mSd<~Cd z%Pw=~K)P&IA_fmv&8-(B9sRYTLcUhhu;4kLAIM7OluRgB8Bc_-Xc2fg9Qa!gJ&rxB8Z97#pb#4R)$M@lXK+8&c z@sQv(BCV3r<*77=ox3}7>(C_Ljk6^YEt9Cg%{X|NkircT>j)?n{3d(o#MG#kHIyINQ;KRLh3$bz_$91K zLPmV0z_95CSQp|lYa|NQ_9JeTKdmHf`tIXT>KOfZuAx5z!PjV^o6$0FNMs+;u3mCH zy(v*@^$w?f?4XfX7a?d9J16?)E5e_qPlY@aI-4zMlqN)kU*Yh7p4xxnB#UFy?z6pA zTX5x3&a=!I?wKst8U}CUe-2a-w#*&QT>>5L*v$MnH@YCFs0Pfp*PgWXN5c#HOAIGw!VMV?kQy)#PMo$JgZ*|JGG$V+!HHizSv zBr^kd#WrqS^n1OfGTezJ6$Ibvk5B=%TP88}P4Ne|UT8jJi#=um8KwcnZw{Slea+Zw z^sA)(N)A{RM%WpJ{{x&rW52w=yDJ)kUj!08)B>bxyw;?ABx)R;6!-uDAOJ~3K~ym` z(#7Ks?yEBetpvrxkG5=5A*JAL*N(JE|5^<`5NyAE1s{fkVLWLjf znyi=lS_uBaTOCGOeqGLV_O%n z0@wz=vY4wTm{mPYm!ce;_1S$m!`{QwK@rq5L~{@SJ@K`FfG{MU50f(`(n*_$-Mrmb zLkmCxLF^U=8gGI0UCIw&2uad3$+_+#i5-;&h717T+@|8UFOUilGYqoYJ*FSPpU58b zw`9-w1s5n4O#eoiYZ{dBbNrJ@j?GgT29q5CnrH7J$F@stw8NO@n0S ziU>mR>)?7}f%L!XydH*nL#IfS^cPLc;LY#c!e4*(A-?<7hq(EzA4V;*e_P3ODoka| ztmsOhwZ>KcBJeA%NpwWfhl8&*EXkX$-5C1yHTwT&?!DvWILL1sPltQV>?t;SNHVuJiq6ur=CI}Oy{6^l-EFABMEjK z>&ZJ8t<0YsAEa~VPZ>JC1Ei!T7U9n8m#}?S7eS5~9aN_=Q`=*BsvP-LX!dI~)5o$} ziEmDr*mW}r)vjd1Ho_npO3GaM7zt_3 z`(1~8s_8$$h*Ky+C3-50-aX=3AF!JTP6PnR-{3!!0MJzB!)Tg6-rQnneV>Ao)eF$x zDg;zP>zoEckpP{i`i$)Tm4VfR2;M$FIsjD@Hu%ygkLqqc` z5_BM$(Rk;~0B8Cq9I#*0vh?o%64CYUGr?hHI3%8$^2g_CE09-^Jh+R;P46d96UwOP@2wxDUP2V z;7r$m=lJ-=(CFSD5nZ+cH5|+{XDXc~mDLFO6ysYn1%P#yUPx8&X$F!m=LgVqNv+T4 zf)FIS`RLsnL%cNGA90PYOHLl@>2WHsG@^g$nrnPo-hnB1q(JR?pt9wwQ{keo^zC_x%!#?QZp)C&(h zqb|hq`Hh7;+28hC=#s;}t5@w=SS{@kZL0Y$6z~%?F=Y2C5zH z_*5VB7A#`k{Ds_nW11s}_Oa*Pw>aB6NI1HPl&E1Oq0&8+;&j&thfj7hmAp7-q0CM( zzJCYtP1jpkKY*r7YJ)!fiZC_1-4Bq+W@!ip zSl3v`KqAR_MkC_)Mrf)Kqz`qGJ$@9me*x;eCPXZZOl8nc^rD^fUV1J6+!-zZn>n3; z0MtQrJMdiD#!Ap75daHs`9`omBX5WWk_E^w1Tx@5WOWo>qAP-+KR~!Hf>F& z%-`UKg)4dGNVhBOFNW;xZE%{Mx{}PESC>fK+VlJT ztXjRERjby~)7{A%ufNQZLkFmpI<;|F5{D0Om<4JbqbWb#!x>Ip80FB(UdAS>OLsqh z=pkxWU5N+=92#7cx;ukQLENV@kSZ)2o~u*L;F>fTtk&;iKub9^b~39&(9rD7k&tbr zDL2ZdGGveUf=r{G?L#|Tp5Yyon|LOHj3-+74gNC-fKi>zLJ$cB3qyap`E7|v5Pv9u zUon>D5`z3({P7|Ipd%UYI%sSA>h*1T_+Q8t>}?9nTindr%^ke=)>*#!mB;zRKi}qv z4VX1=EnC}X(K$59u?r*K%x|8nZEs|6-x#T`5vEdEl3AyQcVqsso)aAV<=0403?hW! zV;|VSN0tl`5Iy8IzLmE`@reStLU`f2OEE)7>zbLr@kZK~U5@JWI~l(WNt-ZmQp?OX zK61xh3=IzO@{7-M#aXw|LKmFgWeJK_VT zfLK-a0b?W}|JUnxlD7eWP<7)Lx-=$$P__%96Ap+xL+fVxWFZR+W9quhPxDPqBtc4x z08p43IE9ujc>ia&)G&W`J#LJSi!jI`gb&=lmg9$dIJo;117kPQ7%i9-da!{7?X%Ey zoljmlpQqnD$D79nTt@(MOg)*+GLfu2WLM8-Isf)A=z9ARq^>cqV-|mMTN@qWoF?!U zG_32?4(Wa9B_yQtye|}H(dG{@cl|X8p?WZVAzZa0%C{jMO*J$$@|(ARg08M}JpZew z=j*@cWsz0GKjOr?h+6u|c98 zKD`)zc&zFhm~=@5fKbJDAqAm;nl}Nmx?V{6P2oEi7@@U^@r3CcP*5aDsWaJo+}7@O zn`RfBe~=#m@G=FA(}GA%gj?=d&qLpPlfV7L@9^zk{8v)r2J>}?Hn33Yq_SBun#Q(e zGg;PN$9ty+I6p8+-)NFVGE2a(P!sgiRO2JlxrYH6r(4#QW&X+jvz&PDUMBiZB81@M zAKb_tE5`{aBNP}vN77}_JSt)?;Zn*13mk>pmR!b?D}R$<#E7CR&*UylT~;o*n-6WR zv-$LAKF6N--rAr74{#3ksdVbW)g5m>OqGosJN z;O4bDzv1049*eiu$x%pEaYG0RZwT&6!=1Ubbt;fcB2(QYK50e?%5*v5qihHM?+Jhn zpZk`-^FnruB8-tMMG*TAYd z@j{rXl$<+xl$W1)h~a@gI@WGS_s2b%Kbua`x$99n-}yye>;Kn}bTBVAV)j$@_zv8d z+6x)rVFDBwArOwT`o_=DG-o;a54{Qn?+Nuw3I=B#Aq4BzZDij3g*^HA&pCVUOf{Y0 zx-~J5cc;i?E$yCu0y%$)LxUIF^wQFo`apm)rq97ECO=m^pa@5MQW|6aQWjQsE=B2V zmdTMEiuGZP4P}7JlGf%(AD%Rrza#{q7Ph3Sn4AVSgRzBI|b5B2kPfH^whtLBtl4%1Kq%#@bdhSUM?0T)>2pa80Z&>DF zel3%s`@l<_f9qk=6GH?7em;5IWt-!r_04w^ zjMQS|2-o&JnzUUkFFBn3w%3W*#`(l2Kf{jKUt!1VuNvCE0;&xwY*`ZF)q{nIxqx@ZBQDB4=xGU-QAjEw5V2tW~_3s7_kS!twN&Uyb; zfu?Ds#tPojHH%wNRDWTpuLPr;Cmjf3#>{%I``|jBdE_1b^7HrbjR*c8>Kp3FXd0)vNdYnmN@+7d2)64Q->t53gDxHc2(daB$Dhs^0zg$wAAqzv02RVMnUDFG zQbDT5QcDs+VzeLtA|XF>+ZquHlw@?5V4z}zfDp`G(#GZ2t|Z>tp10lCZ{C6k1WBZ_ zjExNQ%ul}K%KVC=5}P@nH(z^+^T!VW(A?a}?|*VTTUz??sR@upjGx;t1>t4Uxw2+J zvA_^4zxFPg=B}(V1o!d_xF{op$OQz%#H%M@FuclPDwvN zais06aEPH~+SL!>vn0mSbVwiT!asi|sEQ?4p!9p|nM^R8NFy`ZA_QQL{D=%FWgtW` zNsw9sq12TtwynB`3v^K_!Ipmd2aSpljk&ykiL4Jr5d{27!BJ*zVIKrl#SjpRk!!>+(??A-SGK>v{sJGnVKKpgA64~PHowQdWmC+p z_?%Z+)rYF8mbxmcqOx?`oixv1eK9}ZG|A0BQ9VT?QSSQaCuwMCEL(PEM~M1Z!K~^( z_9`-+o9I(C^k@FQT9LD{F6bwuss({z(e44C!3J4fk{M5;o$MlW;sVxG<64Q?rBj(K z#|FodnJhvStw||z{mztJx6*AhveG6hDceEpw`WxT_6u}T0zk^_JdtN&K}rvzD1wk* zwXC%Venn6pR#8;N+zO1J69(B-LHo{Wt+z9=YG>wRMi19CuZ_T#c;m(VbQe$4F=>k^5{dB9+doDuRyt5d5wLkt zVfnXACXH{T+w}GuOkA9dMRP$#t&tGLdH1Cxzo5A( z6yj#K9lr`~@en>mwQK#HAW)5cJyY-uceFKv>SW>q67c02JrZwZ?e!m_W$qH@tk_sm za0L7T(~K|>%hbd;Z@==a?U};04V)iI^UM41!KVs7_qmUA{P+uehNkvs6aWY@9M>bW6;{z83U z-@by@$7;8m6MS4u_LfMHpsHfcx*Jp#{HD#G(9G0lih|5cqK{7H+jnD>jIOh{cZ4Z3 zIfxuj7}CnN<&uP^U9OecgxRi4mMyC*a#{l5qI>{C5%Uy@G45{;0}gff(7w2yxieza zgnZP5jA@oyR?iRnsZuc{n-pN~YnejSS4Uf;=>W_P0lM4w!AOkNSAU3L#LyreD>g9F ze}Rdien(jVO*c}HD~ge*WcQAjNn4`S;?3>6^x{kOb)Mv|yKdtj{^2iZZ=dPjQ;;kPspQ%t!c#ZtIlD%$KRNalr-Z$6W%$8Yv z=mQ_(7mq*c>CXuG1Z(Do*>&7Nii0O#CA{<&$hBJJ2hd%XC|87_qb9=9;j#R0Q5z_* zz*s76%)&EZnXcw9 z`W-x)S+Zye8`p0r+0urEg@suX<3ot?QHu$H4H0-H>}ZJuX$lAP@PB5s;9(z6Wszfv z+)}{kBSZOXK8pYtN~CzZd%(v0=q3Vi!1LUsFC7$Foe4le0F)~$MfT2;FVBN63IQmp z(q`CR1YsT1EgY!+(o6Y$H*jTsBp5}!H0aK36qUZ#TevZLrUP=lGPpIkgcspat?IcNm+1jjp>iq#@8XP8oWm08_8e0OPm4M9~!0UAO^o=FLej!Ynj zO#vVUVsgwt1b&sUPbIDC93LL1$7MRR9GyaF;22X>tT7=PqMDHa69GsqX(AABAuI?7 z_4o(s8GUNF@*7+%0#L*Zs}Dd?1jCadgURw*-f8dW_Eoho8ld_M!4C1-n8kKh5JItO z^!CN8Xl$M1*{_-NmeMfGxdP3sU>`nJ!LKTGn={oKX3XT5Pd>?Y*R1E4zx-}R%nuNZ z)fM>~toD8he?Z=*ck^-hoIU_WB@nJ<&YEj3!urR zK78wK_)4ThTiH?2*kb4qNT@NF&a(OebTCqVyO1IT3*u4c#S2k(W2p?uV|_+fOlFfZ ziyWOq0AuM4JG%y4nIC|mNe}zn!eTO8oew}W&0;B$dU+p$itl#s7w%3M=L8f=Q?UR@ z$p|BT7c9el7A7y+&j|!oRq{~Y?^6kREV=*?u8A{eS$T73(fX|fLSfsvkdokB_W*vM zO7DeERMp4H&OUr&eLV2ve<5UQgG$IBuC>5@Hxs}M&bxX0Jw^!3>$BHfjp{EK6YfSX z%vg~SDZ|9Bm)z?(1%$n9@%5&r8Eo6?J*>Tab`aHs&VIA9-QZiM= zG~V8xVMwGAs$~dH2*k)35;!$HVR-u8D5D{Vr;NHqn>_+hb1mb#DFUfkvMI@Q**c0E zzP92AHtC`SfTCIvfRYyiCl4QY(fW3VSJi?*P*jCL*bo3UWhOr?Tz93JA*eL@gCQ2K zzmnpQ^4P(*@%vPgi7DC_F6Z!T&(fAi@!;31n@|-9$58#&m5KfCYY{5BYaZ7fWpkTh z_ebiRY3x{DRo?&`XH_tXEmsmxd)>2*N`;I?+q+%2AiT{RHZiB&9pQxo3iDbF7(F#H zhM1Z_1LoC6S>0Gido)Z_I6z}4SXF>j@6jGZTPq5vA};{+k)g8IkL(#U%IE4^H|xun zS@$w7o0J)BH`dbS>!^XMKa^<;fEEAqX8}bKwZ#ZPRTR2JU^dW)XY=p>2|ytjKdU;5lFD8Rq}^*x+BdeprkHxhzS zZIcJwxBj&b0~VDlG1O@c8Tx2nvDGkvJo{0+Um*myJ&L7HH3&g?2#Z3)RL1o7c7#y4 z`Gy-&6?Z|ua8?1S1yh4$%|ZIwfRB0cD9h?=S3IFZSE%i*r@Ly)_riRqY4+Wz5styL4wg8whNrR#YVb%UQ<{rz$nH(K5 z&a1@?Z`b@eArP)H#@Mr-uuU*$`MRq6Ie+!0eA@tu(AfRT!_1nqkXtv_uiLW8a_Ok2bVWJ9D1ft8k$z8NUi)VH*i3 z2Pa(Gb@datA(VX52xx3*WZfF~-+STA0%I%V7d)5ju9VIkzEA|e4X3j}AfyJv?(;(c zxG-wWg!O{v)`!=#6`KHL>5|VXwQ`;N|PNXz8MMZMhmfk%Yhs^X-)_ zb2%&m;;JjJBodBLO!25nV~v3h^x@|6!{d;2Nz5@g3FE2K z(A@gCdgUg7Uc3lwCQ-hguX;z(v;}}aAj5@lUSSFEHH5+G^OJc5kY{)`=lpXDfrhpY zz#9Ry%v(I&t`e(jWX@8%<8Vb=LD1CJ$GG(q+X497-}@g7_u2E&c~PXkxyW|+o1+4` zv3~o$tF7-*HxP|e-@2g0-OFj&@^u_#MHOY;%2mwt)@#M>XE1x>c zK||vS`g%uQf@-h}0I3<%1kVgX=Lnn{fB_RVlnv%72qr1@iUNT2)VOQJrIcFfx<0jP zex9}fkdm-1uHQPeX9|Y>@13wSz2YVWj4c|kBV1!7-5eUVOTYMxSw=eRiy4TTssH8aIXsyYFnOUbb# z7jT_jhi-XRfkZRU3q&G|&~UHkHlxpq0Cc^gI{KtXERSAhMxjuFg_VzGb1?`&RSgqB zwfX?;`xnMyBqqiROs^Ip0qby}DrlK+IOB@fo{KkD?)fi8p=gZxt1t7sKC7ddt8X)| zfB6$%Bsp1r@zq#kYYC^Hn-j3e5op=>nfovq4H_FtQhi6^rHUuD~ zUR?l>)thf!Q$T7J)zK%1T>C7wa=}0f#2QQ4jSiZ=4?qyGYWrdopehPN@w5M}cU?5U zB?{0Y4CX9f55VA%o$+GzP6#+%YUx;%H#gkqrjKr;X=Xixy@P!B@4r#Dy;xH_l??@& z$HhZ|E@&X$JQp|S^tSU$YiHN8p4ZJ2C5Hyxpu8J|FD~z53U~^E0xA)T!WCPtu(eoM z-#~kl5$L6)1{h6d7_ZO_7)z!(eZ1EjN=s;4u6qCgAOJ~3K~%c{kW?ANZ#5@u!93;L z(bJR2w8yYxITJugR3WQ!mQCLT@T;1G`PBmR=l-6!pps5ZIfOs~0Ti}5D~w^E3w`!Q zJ;ODnGon;W3)f$nk2@$Pf568_zwiNsfbW0xKF%CEa= zxxH|MlFHxCgylvGO2hozbuUCMfg zV}_j^96kY3(m7sYxXz@Eu5;i>H|X9l9;xRAkg=$ZtQhh;+RED3Ml1{eM@l%Lb*+pE zAd!N0?*^PSZ2_PPq1j-69{$^ffUZP%`;|9L;h;E}-f9ZWUa}gWKfsAIg_j@{gb zq9@gp&mUmXhOKyU*P@jjtlzo46a@v^!LwUk;>wYPwx3*KJANl5r?(2#Qto?Tr0tM}>OE`1BpKsm!G%q}T znBkFr6raKP4Q7@gee5hGGW1R)NtOuzmB4{h{iG&R6~Oias*+Mp-vr1M1VGt#ghU(m z767u0DI#?pMTl0<23%;`vjP36*{mutWQaMdFYh@w&j|&Ay5?3|7cS?*iG!}!Kl0fdIkNXO$M+uR$?reF zhkx(Wo^8dNXEWM$!aT~Sr7;g>(QLnb8k@pnS+e;?>n*>ZC^Un0cAXpL%jO&PxNa#U zDD_!Cpss8|hld zue`&Jcif5)M!CXYNnQ{L$?_|&=jnUDLRQo9sY*q0|I?+pD>g9NcY(<R^AunG!dJNR1J}{i+UD9$tg(%Wp0ngW^ukixhscFW@9Liuo=HAkM4i45kl zT$c87LP(eEg)&BcH{nop-A(v71cE4(%L@dH0I~@NEDVmT5J;u796EHC2fp_!-gPkv+3$pWKvz6KY17+pC>SrHIjXb@ihI4;QZJWvuo`EM5lU3={h%rW4dlJ zWiy3mwoS6$DO_k4vTC%Rd=qz%1-bj;HwMO9g{`D*sO^f9eb?Pz0z=!uEa3@%FdL)X$E)T&k>nYIA9aO8Yq*5Vvo zHJCpS?``LD`;s?zbu)X>VpP@VVgeZZH4Tk)tXR*x`%fDJz%9AkC8S7g9UaTpb9(>V zj%z}|ou9jffBe($@W!)mu!wSp}-tf#TX>HMv!YoNZVh2eo-!)){m(&>~rMOdI@Bn)RbHql3-xfT_{*{+d_ zHMo(O#?E9yDAPm$Q{+q}h+O+%oTTS~}A(-r`yUp}8` zTh(8*{+S^R%kIe)SLL!7@(=ETr?x*hMGk0u7uX1hn z=}_B(0;;or%74K<;}lvi*xu zK~5Xy&Phoq=7Qd=OrLAZaXq(Vo^mq-@;-#3>$yS>D361ot@m=63N{U2I5zHOw2@9_ zIC$_BKmFdby!q0e{N4QlA1gL4V#^KdShQ+h+4!ZI9Say9Fq~x}zrxs*My*dLBMU)Z zQipRrW;{t1_PflcUEsf3RU0|dlM~o70;xXNcCtgg=u_kNvTme$_d}+pOcOz^DiCP; z2;kJg9+}yU;y0F5E-=4teoqDF$HLqlkre%Bj?p}CF$L%kLX&10o%PqU@8ZeOOp7*b<-HdkC!28wlw5!NmF#)rFuk1v-1Fc6kw5>&-#g0q!%;%< zW>OPFCwFdw^y&-d9_ zA*$;_KhHh+2KV3lq$|Wk$C(P&z$zmmaB)nmxCB{)H(B z3e0bs146K1^i>9?S_wvK^3Y$im;u3Xm^C-t#%pgMxeRo#ff0$gEag z`vXcK;MtFCV#?^ZP<~wk0Fq;gM69VM3Rcg5j`>Xopvm|-L?BUUt&#Nac^Gl!XHeAw zI?y!o``3KzZl3?@=igreU`xyiO|2a?&z?`;`BRRf^Ow(I^EGRD>&3nNzaRZm9@zgB z{(${m8!-X3WK)wxjE;rTi){b=Fq~qf{VHeso1Jxz29&s-E98Lkc-Zzvc~6*cu@S6g z(&-Eb_MPCt`<~{F7k1}c^7(zN+*CQluY{W0Iv5@5M`Elr?ehmsGj#ftNls8~|AW#0 zK%hDSkQyFyFtrj0+S;4EJlsw=!BD^k#PNmpktzk2*Nesb>mqzrQ*GkQg6x zIQ5i3Am5IbN-}x;ua9CK5fWs+MIy7CB<(1^zZZ3qhDp=lIiCH@FbVTJfxIHl;HX+II!b+ z$CThmEX;@RzMlL4^)bHoU;l~iAGwLS~hN5!DZL4 zW5zTgekBx(HxP+rnjZ9(P6wZrHYx-LD_y z(7Px2o4dcnH-B}%BadNpMjM%~DQu7*EP|j24M>SE6sFjgw!?fU(^uvUtPllw`VI;( zKaC+_BRM`nCYdbs zyUJI8Q39avbk9CjQSPvL`#l&xw;esBv)PimP*q@S;2=8>gqgi+bDsHg<*)tp7kKWO ze`d|L{*nnjsv?^mThRX20&|wEW~9HHi4o`2%sYPfX1;phTkLva7dxJKhO0h&tL?fk z7$#EJOlo|{!we`00OOKG^_l(z2h1;WxY=O7n}aS_O_&hA5)|NKW|;LQI=$U}JoV5E z{P>Kh0JgZYPS@0dq2Evc=mCvcGhV5)BnFYXCP z!&S9EHaO^N*DH!j-=6&>$HqaZRWhp}ToZLD!GZ3+qJCE=0WL}a^c?Rwke*5rhz4yA zKsUzE353pGCqnW2;PUJ{y#Dqi^EY3EqU6i~Nz<%Z9FDGJ;KI2}BmksiSK73(u_uIJ z(Yh-cZBF?JK$by0tXT zsy;_!r4$K=sjsi6v969_&=ih&pNT5aAC(l@YG~NZ8>=Nsdo3IXqh2?_Zw@07~aj*D!6%TJsJ-E92Yz z0p|Hc#{EV5eQ>pUgqL3$Wd1dGpsFI@&el6W!w(<%8h^8T^Tl-+ER2^wC|oEy7m3v} zciCD_9eCH#%(b^&&Ym5I=sMlY*Z=hI`K#~!3pV>(QHVCoWMZhB!X&AjASmqT<_##S z-^I&bsWY&&ZC_w;JWzuH^V69ONA@4(=l4CybC153Z`}&*IBV zLl&Qiw+IuWjk5DZrCSDPFhA)8ErQ(IV;)>yFbtPxflS0@udX`q&x%w7$532 z&3(M}!hO_ix}9ik9An{8KcTg^asJF1X3w2_5&d<(8`s4nEQny%+(nG^bu-j=!B#|3 z6+Zg;TlxBzzt7{}f1Er1%Uvwnw9!^Z4TOlqXOI{hEZo~_0!V4{p+s1ror^=y?w~WT znfrE_?`0Oa!+fbrdMX*Obqau=4ELT|GOnshjh*@J@ZTx`q|eV}LMIyb76g~gOwxb&eh#Ut>DaIp zMG?$ix}5u-eVqUC`MJ~YZWY?!Y7Q(|vzhT%o+gvFM+weZ)XEh%u4l(H@A9QP|AdE+ zJZCINW^vg0!!a~1OC~Xqhxg{ayASl3*i??*PBq4UUDk3P$)k|SR9 z*vW;XJ;xLwHi-OUzE0a;3QRKqLeU`Iy&4PWmWGitVuJ1L=k)9QIjt_BrhPG?mJWtT zC#a84V~K2!VZY*Yj>tM75D2nh^(KzI<4hF#!B1YpfnCSwKHI}jzwuo@{TF{&xM(tB zFd9b)W9&Dt-HIXtg-~tC!w&O{Jp2`-0Bd=Hmd$Wz?_qxN{U>7K;s*i&>f>=5>gtI_ty6WSdDg*=~aWYaEPQfB1U|ST! z1Im|20q(XvKzC;sFFg7ZKlu8COpFyWF6SZsRV#_sIv3!$SPJ+9)Yn;=zQ}pu$@J3p z$LspB)5apSN?iy3>Qmwa&~>WQllc`@p}wUKwF0=FNoD9g(_LP(tE!P=yb2lHFlz>( zh~WS{eeewZ7y3Q>jQBMR0FXz|AG$!x{ASmoKSfCNoB&WHp=f}vv(um9*K_)4^=kxF ztNm>srp#ZOyKF6ELwzKQvIVccd?_n8FXq6mWBk=`eUWd!`m@4tjfF}5(HcZ@3O$?2 z`v5>95OxN4bLf>t0Tv-41QVlU?0Wev?)&E-bMnyXd|zwpW30Vm8JAtVhSs^4Cfl-= z0{#FE^>sAV)f0{6VjGGezMJ30OAvdJgyW|!uz1O0M7WOWOcl%Y9c8rNd-$(zMqSC3 zs;zYP@ENkYEN$E8{0xfXc~3WLncITjuhMtEk5l_kmaZ#A`NW78x%gQwm*%Vi&4 z=Q8wXxBrEdgrgyz{Ka8@j{v@+UXQoQ3hr}|VDuD*-| zJ707-4{!gSn>fDz413?$%S#VG&UGLAi0yhVq}CUVp!+hmh2ZcZ7P=F9* z(-{uEcYsH}_bAUi_(Hyj72>bDYzgWmhWLKJ-yEl}Cl(E3k0LAu@r!>G7lwEHT}(Q1 zvWw+wuf#V^_`mb`v zIB|&iYrOOO7u9g=yJ~;e54E8EbNe-Q^|UWo#`zQWY{7L+wcPUY?L7Lu=lGk?{uP^U z*hXzbqw@n6pr}3wgppbXsTa(FX`uiey3cj;{4bv8M_>ObV_GV!ZYYMVEciO~t(erXR+CaAOOZs z=vp*!de8ar@~al*8C?j)0sj?U5{ZRKs|_4_X9w+zSK$waII(+&`*55G^`1S>oaO8A z`73~DMYg={LKWKIy4${BDI){DjE@Z3TD8VvsY%@=Y+)g=os(3x|1LL(~mf^_jtZ)Bo=1PmZe;I(|X$GU82ZIll(p( z^>y_$*4Gn_MlBzsbYc9W<5G-Y#uwoBX}tB`39_0-xOEwURFwiiYCQMQy$ChzX-oTq zewt@Clnra{K0iR$+5XCA^y!-ED6hP~{-B?ozuIlAeOSRXN{Re+3xJ0-xclhQw@$8I zb@h@w)OUmb#<3t&8{^o~0j4IVXz5sl&mZ8(u9uCpMir2j&Cq-17;TGImMQ7{axO;u z=l%*IShRX0dw0BmX31Ej2*I7de=A@6;&=Jg&z|FBfAl7+w{D^2{CuGza;j67MgdtZ z%ZYu5c=QL4@!0pCK-Y~%d_I-MYu_J;@ALU+h}Y53&_GSB*!gN@YA>koQpUBMdD>GE z*w4T5?h#tsW-?41f1o;3vUlf0be=wq5}t(@o^GEzlR&66dt}mCcJDY+(TqN0Vwn*f zQ_T#(v&Swt&At*Or0l7 zwX3O#SCtB`B>7a8x;n#=7q5-y6^}!BmW2D2Grl|1yZs)86L0Q5#tpaKW-O~#?t!c| zhfnd;55Hp^_`DIoqLs5t+y7GX`g4aEpGZ~~)RVESHdJ8{kdzWLNk&EG0VKZj6&L1` z2>|&{Hl6*{(VZt)d;Ri4;@8}kUu{Vsq$C=T;Hzur$nJxzxpD&l^)2nD5O@JCTV4pH z5>pIzpDVG<*Co{c9s;DLy@TO_9)^1DQG&O8VmtfZI?7($ic>BfI`TjrufFrw)=8HsPA=YeJ#uYcNr+xmVgZKv18?)?cYio>%HOn)*&6g;= zyGj_}=?k!*@?v=B?>LoAvvc<`uDSb*3{~R*)UrJB?Y}2$F7zVQh^t}^hWyN3G^-?% zdT-ZBPM@qWnTOQL|K_SvaRLysE*Xl;kQ$7fswNWXQVD>!L9q9w!)&;DB|`Ut{}M$) zv_66upUsio_UX2D&8@7u>J|>Z@jRJSqU>F}Pag6X0G=O_hd;ov>!OuhG}VITYnd1s zBAqG>zXpPS?)bf%`Sw?S%D4aKUT*yO2kBU{!~+GG{SlB&r#ZgwAdlVm2#?j+L7i;%GjZEokxF z`j6!+>869YItd`6jmOKED$peo0Lptn=Hz?l{G)wi)VIVP&c7V|m%1cYALZX-^7}$Kghv1o+B|n;=GlGMhAMC8XG23>y>z-!0aVs{->e+bLag201H>FbAVgB;2Kj-_qeu1j`?Cl6Zm-Joe;-#NI!*{;&AMOzUn$^_QT^fk5 zstR@SdKwxUh}XuAS#BN-UJ~*bzcU9auwM5-UsVd*96kR0JACXjpCYY<2vlfJj~sf5 z$A0jA`$^TBgP}mn*Ua^V|DERsdFIJINTF1$ou#G~?xXlBiUO4B+zLU}34nyw*jK(( zfi95%_P=TFhGVuSspE7Z3hdR(vegEY^@8=ILmdoJDQPunj4=I`9dv3;jG^4<}i z`SHVi;L{(^qk!b(1n<852H*MHdpY!OVMs9?4YBr$Wo+EOiuuc`40!S&MKPJav5~rX zyrAiA&*jDZWgvgC*1s6WufP|eX*y58vX}qyA75g)!r{L}=YGEZw_m0>!;|WdIEK|~ zYQxN5GRt+i?fmIJ9(`yRSxwj{Z`Gs9hc>&t&kI%%KCHMcoH ze;|xr#AF+;SWM7m^3S1tXL;;_ooK?nXtC94V+%Gc8>u$znM z5()tM7Vx>mM3VQOKgi`DT3cXxiy%;>q^aEy0K4{%v0>!_R{>yQV8`tsftNS^9q>~TM zxz5%^0phQsrf$0P8w#Wdh1$9}O^r>&x!tlj(|D&(-sXzEH zD84}1aQgJ%S?>AM&oVq<|88d1`MBeXIQJY3+L+VlQ@QM_W%&ICwvf8y#b@^L%5w)m zQ7hN{0Gfu>?OuH0E5mY`jIqYwbW$g4iK^f~Tv`F}N={roWJYrBT|liz6}olF?hXgw%a-^AK$Z=?6jF}hA1Bw@)C+|)j=s2g4f()RtjUZ?oG ztW5jocB3`5%wDjVbH|V5Pb)(3(ciz7fBEz8lFe$D9O4Th3h=(Z0iUXtaN1o0<}bQ&lmODA zW!G++PeWtD*D^FP!Nd2z&dFoO(7NIeRyB=RPv#V|c@MR;15iq7X#Z+m|GE23b~&f3 zmZ3{10Df>1?mi2240MgK`-OvSzIm0+_RppI3WfZ{n`;^BO`#|X=a1}R!P+e)TNgqw zbKVkW&Rxvp*f3M$BZS7Q?E?S+AOJ~3K~y3&)HKX+DJ?DEYYDs3O*0kMcfDSs&9>PK z80qh4%n~IybM_2w|J=>SDz}>!Pdj!!M?z7E*T!jRY@)uQ5ud8&pT)^vMT}cD^Sd#x z^IBQ0Un%34_)Q*oatD9>mtP_qh?bRIc5uPn|N2YLUtZDy zt)}>_+l0BNlN2~&aitsIUf;b0{_+wZtD2(y7f}W!7sH$2?{Y&QFeM-RXw3SnS#w42 zH6*1Sg@14F=o2Xaeo4UUX)B;})gfaR4G^s_6G*Y0^=x8!qh6(@hmsYCHU1Vs?tF&@ zjlaGKp(olWYdYY8LspHjW`AJH3U0~>UZf}0B9=qGZRi;g1(a~#oim~wbm4ItwWkM2 zm@?;Z#SfbVZhV$hkY6cnCW7DNJXX}W8K6h*m9#*&8DWj~HNysD6aAE55G zzNg1SrprUNkVnT)Cab1X*Y{yt|JL4av6Xa>(|_aF8j_FQe1`H4e((HY(NmN)?&P@L zOp1H8+w@FM&38EeFA@??M}?_(mYG9A-n4*r8TA@2S%fJt!Zf1m;X96NS3E=~)du!g zmN2fATw|%JLX*bg70WJYq3;b{Xu_8(VC%gmouoS3eMxo+g_+kbFMo7!NFi@JG+jTZ z#l23-JL^%y84D=4Cj#rQKjg+6@iZ4Bj ziq+B@Yy@6uq}_IP?WI;T0q-{&NloUh9ggB;^i~vk_zTSfozkIE8dqmSGtiWLW zJzNY>NFF!jPo?heVvNiaocGL6?&3blUgI`&Ej@pEFSu>ErT45Ox->sKdMU$$^mmdt zN;M@oJ6jYxVM0)Fg6^j&(Siq0MlhwmqL;NDE`mPuO-A_3J_C}}jIOrW*ba}0*ytkg zl`4w?yW(TQ9uF)x=w;TFPfUAwt^nOY0yr*IWfA_OQ6rvDq?M{_iSioI-f=-8`k9cP zs5;*G={d@14{9l7?ytZSUaRWc@ub$zFLln-q+@5vI)$KzjnKWRpyE}oD|tM+fcN6fz-Hfci}LX!%^Ob!>X#_$Ew9AV*ak* zn<18YPOsy%@UyV*Z#r_RYm&E9a6p!2`jNCk_v}61+GlzD>MPVXdt)KFx%V&gy9v$6 za{F_MOf0Et39MA-PcPC+7J4xy&$=R6y1pI5v;gOScpn2GUMD6N2!L*#ZrXhulgGzD z@ZE@cj6275+>cKQ*@nl39`8C;W6=ZFOV;$&5sus}f}UY~IpD5@)#4~ zGaOQn-9?r>VZ3^L;WX+<3G>@>x7Wn0s`=ee5fNEx6B;7ZWfH=-ft+yDrE!#0Lwn!# z!|t*%x=`i7$1Z?p(8t#Iy?2Gch#(hocOCQ5#&`A-_Gx)|zgwXQh6#w&wl@KX_-rCzG z3_X~&9vxocgTCGszr6Cmg55ZEqtVbG4gYh&LEDlXnd5<8xBqcK5DnONrucFw`gyY^ zy>lmsorQgKXur6+zU#59v^IHh#k1Y*LJ+WH7e81^Vk6j!hovwcielrzADN?d&BhZ4 z6Q?PoBGgQMtU@QR&Agfj?Ze3PI{m_e1KD0+r8%?(`s3*(bLNZ0Nw{wIm+IYMIBwkL z0_A?s3vg%?5nGBqUymyzwZ2AOk4gS?#YB`*8OgFFC8KatKQ$&k){#0& zH3qyH;>m1Ve@p`W$bfZ6;9or6L_OU20V9ei5@n24K06t9_lRgVp8i#q_Q}u|&e3qc z-~Iy!M=KCRIeX5yM;qFz=kk5*t5SC4lb+5!NeR%y%U$jGd-HGh|7OkK<(}7P+Hb77 zy-RLXlXN}+MK1af)+$VCQ>Gd5-J@EDAnR{*!oH!|&D(*XH!M1+t6Yg@d!0b{_I|z9s+Ti;RAF)UGq=cq^X6V6m34S?#v8@96uSc5DF+)k zh$!~751K{z>i))btkx$yBCrg`70asXyoKY^6EQVb`$$n?&j=PrY7HN@qabo9;pQu) zwzc5LMA|u3B6!{Z^-J05iLv*4cFxI{6;On+gb?ceMNZuW3FUVS(e1$dru1mSc8*`J z#uF7us$E#KDu26n@3N()r21|4zlVXTe%-<(H1vaMI%_4eq0`@8pq28^8J0#%o}1?# z&+j^s6`IFQ$JYnpdN8{q53_-}Jo@wc8P5KlykU(5Dh>zV;i|d(hNow!q2|DzpU`jD zb|RL=7*oPFQ#m~{Z)C1rzG+tt|9+bX(huWYd~je7M(X}Ab3cFpa9oD4)QJp!**twY zrF{*@5SZRg|5JxdL=!YAZ6nRc{}EcDa@IjGZi0a1*B9hCQ`G1Z;AZEL@tj@`seFyQ zF#YoUbyN@O)w#6>3;+AO1O|lN=_h7#+UJJ5ERUR;romEsLxPx5!kx%I{7;7FYGI3? zth1ahUJg=L!C;^8xw0pfmYFT!;Ds@qlRb)=TZt@#00V1ZVX_rLl>skS2FPi)5vBvq zeuw*v{>Ob=|H|I3IoU$9$%W3=_l%~t$3uLS)zXqL^5ai`JFB{jbJJ#j^|P)$%*j#= zAf0dq-ijWwoN-ut9dC;KapN3%K^biR5cn*FHt%EUk2Xh21_zb6P|||fw>R?2R9ooruyEmwE1h$o*i4Lc)|C96%>Yk9 z^k$Ma06?_xh7|Ksuyl9Tzy$6LvV}c3&1PN7Ej3aFL4`g$|3T5_|K%~Gq?b6#??x`K zReiOd$pijMgD)Cqu*&)Sbqt44#qTktymxZCcJGEb9x;u|oGlPCfH-=^5c|CApFx=V ztM6@akeuo?#7ML*KTD2%C&IL`dO<*7diauvM=B_~T6kjlHLhelVyQanZ3Pct7gIQN zRe|)N%ds-sFY4~{E=x1jd3xE5c7qjH-{17v$M{Q*-v?jYu!S`5&8bj@#eRPeJ{{2oow1O`l5cT1aY4QAP_!D5+$OTUy}ZWvoSYSkMjxfhYQ|<-F;4 zQBd<4CYvmz3NVZXt26E`qpH>g+-mfblTT%`b$9%J1fJ*lq){#8L4d^KY8u(vlXB=7 zoJ>EXQ+m*`s+a1K*Dm8lmgAN-jlluZu7Ce*1_YWx+zsjiI&sccO@Q(4Ke18C@z61t z(q!=WlLg-~+A9(YYNv|peGghcIniA(mXbwy^3$lOa@p!Io;%rs!e(DLY8Q3>%M(|# zyOf+6)|&O0ny3AQxMJ((1J*vM7UjPK=3FuZwXT2PyiQsrAD%%zMjwZs3D)+V<#}l0 z?D#yGL~Q36A_I>Nov`U1SJcJDn@D@Ktsj@n-U^sTX!#nE7Rm9(ZK_neqbDU;e)qo75Uk3WG^$TwXV2aE zXNn;>vz;U*KXhf(vecI~#IMy+%Owql*Vw2G50gbI98x6{F}Ckb)NS_nAJ%v=g#P#x&|^TM zE1hco$ro@JS3eSMes~3?T?4wW+J`v{w%8;YWxlZ2jq*xd!@EL`zy^W%-4A*JA7f*u z7*M-Y)z;iz8?3Wxni3BM=Q`HUdL9o)bca2_eqXcG_n7Lrd-H-ar+030^S935;E6Uy zgd7%j>E~DF!3E6PosI$3Ge3&ST-L5IZ$S$DZ*9Wi|5WEK)0ktd#}3@i3?y8gMF$%! z85o7y@uD~NlBn2Nw<`aBxO*vEg)afjdA8&9ftZgM2()`S)h-suGN&uD1G|HYcX(8P6`kHNhvcXD=a{2&lLuJ^Ek zE_fBF6!qr`=y||-@p`Frb~S|?9z!0xoU|YqV}Rn7;D#H^)3DHaqVouYipXj#egJp=aJr)Jh_4!i_XdvlWss=vDNWUjNSMbUCU*DOoj2yR}y^TG&~! z<}VAxuh_QLOi_n{M%(N|Anwl?OgRA3Gf4ChbcK88@#6}S=hbwJa=U|kqTHc7dnbTR z8jR;K5Veb0U?4{=f@C!iRrH|k&rwMrfgma@O7P z1SP;#8PCv779G&dyAReSdUWOqdVn2xz-}QXhb@$4?o+WVYE-24HbEe3oPOINAUuaI zcz9uJ6uNo#XKQo-uiAuFGgPHV7L8q4oq4?Gymh{rJunH(Zbrj|a)8tI$J)#_dr2 z;BQZq5H@Dh3VoHhgTsp&UM;~4z0+^?4jX|EDq-t^W0KNdYicY@kIrjAbDRff0U5oQ z^k7U+nZ|JhLv2Evurop!!U6-vnEtlTE1N@+MlS33hBs;y=ArK^Hn+K;JTEZe>x2$P2C$ zFo*8^g}wX0#+ZWgUJ*Q3LaV|r2f?wGmGVSmt!7aD*>#c&g0qP_y20VfSw9MqjQgJo zo+D6Lysb9_vB<*KdGdNV(9>y%3Ty74)2X4_oK^2b%(~}NR2FZb#ewaYR+vpq^jl78 zj5!%QOE5Vmy+Vh!O74Be$L{D`LTCJ(6;y}1TX{gF3*Jn49sMesiq!*0=`QB?x^D|> zmkg!(4fXfVbW;vZlWhgacv4SyucK)B>(#pH++z#+HThvix?%V#6Sox6{RZH_A$Mz( zY*!WQ^>!>ib!{o{ZAkWRFc`FUTfqCAM5Q5kformv@&vI8fLI2>2rE!XQ8`JB6=T?0 zlm5YvFFKouXYtjO;P}G74n!KEnPn%Ck2r>_0@6IME8FYs-(0>1Qi^aIatKR!GfgBwl~fmHz%ZSlf=G2rQQt(!^jXB5EFT z_?MQES}FR!3vXXX-T9!lZe#!*TC6mSs-SAu`c`Pr^+b5mA4l;pzJxo8#D>5jzF6Ie z0e#KA`+d(gShfR^Uc-m5N(JP`6D4ikHC?TR{&rscd3hpP?HX9DI#y*-!BZ$(W6IjE z9gg+m1e4)Ddm~)=RE0S=B8`+aql>9h{I-=>Mtm4n56O~h-B*sqTZwyRFR9J>F!twU zwH+Ty3X0()l5>{=r@>E$d;qEWKC?YVKw1$;Y$Z$TgcUE}F(hs^2kf9uc?MNs<+&}9 z%8Z%FWn4p&*SGTL0hbNS|P4UAcLc%vTA3n~lbhIYd z_)%Vs@zb_>5WtrxR$)nZS6^?ar`p;#X1CANe;6|U(GO^K(*e#7ZMj-;O@@S}48ha`cJtdOF9|Iam}DN~^8)hH(R zerU-N1TxXaJZqA~6Q^}g6R_~PPqmDbVQGEAPnsz<2vAA%8``Gz_R9=~dC$f-77iT@ z%rgKLr-Kvmt6}hFcC3Klo9A&b2Q}@Ze0>L}-#0UNp)eg%0XJVilRYKuFypA474J53 z5NE^X=*W84%e!>W>caBjYeF`Jwa1KTGJ_Ma!n?+^rry{}Vq-0?vO;veL85_oKn@1A ziU*Ijl+NY17*FWDO;qwv}49k;HKTN{X=6znYPHWUsplUkLpsyn&M%rp6 z$$nP_(9ok1-}CK-IF*0v6sWW{(x0D0EKoaD*$chJ!N+0sxGQEgX{0T68tsiwkexLr zV|kUL_M-Jz@CQwZ%jCDQAplU?jpPqgn8j!$S9 zJRW|iO}M9mWVdl^k+6`8J4Fh7!o^#uFw!~y7W=NY9ZQ2k*R($g<>wC?_eUz`-UMTK z-C;LaZjqZ97*EyutO02EDs|~13+<1-V0~Dc{*NuY*8GU?k9yL8KC6S>H$N;cSY;d^ zmK4h(-w{QrJ>9p0k!0I#sra7?ZX0U2Nhe^m^B%)nza8&_o({zx5j|cExBS1c zQU|cmb-mr++bCfJWRh-meD3mw8?9(}Y85A4-hOYC9gMD(=XSCE)?6pD2QE!%rCg2? zgyX(aIcrrjU;fhNJ3r8*fA2B)TBwyaSxY|&!rj9K6+wPhB|(XG%hT|z|i(tPX@h7&FG9PqUv8S94qNch_PWV6jyV1ON$x%_L7^We@ z>1879;m1D1>ihmFdAI2WtrA^munCV?FB7dXwEF4FkRl?N3oBb4-Pp!WQ|PL*{7qwm z9EmBYW$X;Z*-7qPvT@4tVi?UxNzS}8eTEdw2hut?l-CRD+;8m!7^f@Qr zt1c$1l)Qw2HiFJQ^;Od&?B>Vj3Ha+0CrA77e7c?5aC6+HA3TMW+N*K}SwLgz?_O2< zE%+!XoAk5NdC5g=F&a7DFQ&hUpAa6mDlF(^2Hvoq8GcP+^7W0hvlrtzL1gKHq#kWN zxw2n98@2|a1}UQyYQ;}Z%6?gWI)Wrc%hPw4jbdFq(X48k{-l{8jaIlw>EZSwwH&5+3Ra$O4CJG2ZZEjXTo)6!4{4y?# zFSzDZKMpW%HQ}1;VL+G==CfG*L8KmMp3RcNS@wt}S-$Tw93^=@gWh;MLDbKA()l$= zWM}FZ<92YJ)D1Vjl=gH}RaL^|x#$^|x~f{CtM@g(joJA?0#cF53@ny+R%7(4F= z-8=k>=5Qd@n1O ziP87)ZhazF&0<*Tb;|V~TJU81Z9HDFjey=C+WKsFPP~=H6f?a#Q|u?;s3LAw@X8dH zXZs0$jVC$SUdSOXj&}agMTjUJ(dGP>NTXaWbeWWc=`GT}slyE__TGbfNG;+9>w8MS z@Vdp|0lGJhH*CvzVsDiWjN7e90^#*!Uh_qHik4;q8qseJwCQeYhYwlYo6Ekr3w0vX zv;6)4Vu+CgC?f5%&?EEdkX5&x3F+IpT;%$jQF8E#`UTZ>>zn;ie`YJ~j#OkMcB+LN zSxRKS(?GJCGs@KssuM%R0X^p(YSO(AT!TSQ9EzLo{+sI)lXO`%OOZ2!S;||sg9S~O zSe`T?D)vu)r@{4@*XUgTZeI|61R&l#Jw%0rj^DlckA6zF+)CYrFQ} zA@=AJpd;&!I+VIUoadp}9L>t;iipmvPgJ?m6t;HdC=;@3eWH<{LyfqZns#2;;`VZ| zJIYRU=}%D$&vfP>>&PccAqpoDVON_QUZ3s_)8W}$C;U-@k(DtuQiN|c2^-m%1u{)h zA#DHhnRF`{ssH#1uRDhDPHZ7aMAy_4IJ145`^te7_Mh{kwo1+?qX_=d&Q#Ic7ZG_iAIm;CJR&uY%C)IV}w!?ki@ z{l;gG=q!blyXhaU&I2hnpAzHXaAd3F9+>{n&pAgYy~pa0;{GPns91nGR9IVhD(<^p zXqT+KzRs)OAdrBy3zeoi9lnwJkrG7;R^YZRNWHY>Bkj5$^Yset_YA@QP}UVl+P7iX z;xuC$eZ1lcjSGVdrgbIatG-Gta=!{{GuOBTBkOf(Om(IwS1-t;jm0?dy7 zXmSjQ=-zr^t$Tf6Q?4}<{B_cCEl5yqc^FAEexx1Q&R$8Gh}6fnoGwEYEvt!wjQSi| zf+UgHbo?t|9^z0~=}Sed$4q9EX~4Nd_a6qm3j^8bqU72Yd9x!5KI5V2)G(W7dpO>l z1HD%;nfZM-Z>juGFIAdsrNu6s$-Z%}X{urRinoRX>BaLTgDl^xe;}4GUv->)>wX3d zJlL+sv6H7=Uk-iVJrniJk8f^Fsxyh%Z_s3H|>f1IkveR}sEB ziz@RPXiT)d`&rx%-@w#Gaj`#;7WNVm%C-ujG14f`drMTpEk1Xe7sTc|NK4FRRV-1D z54oA9w|+31!UJzfr|I@9FuhSpw)K52Ey1)v$|I9fD$i_4D^GuVT}Y1-LFy-KKGmAplH+1xn_*x7d`gEmIhtpM5_#nRrGM zMy+LvSEYBv5UYU%@}0jjk`<;F{8@^cLgKH-)^>gUT<{&)@)v-@Z4ucLZ_-D0PE3>_ z!iD@&Hil#&E%McN`F|F6x>G4|6g74rg0|=g;tURC+t4^`ftg|N-xQ=qObq6)&4j7X-?Q%j7?P`9fju=twd6p-c|*j^E9R zT8NNUc1GT-ucTA=_jv*hT z->QJ%nLo|O6<-78Kcyup$8svisvWim3fI&e{+s#6qE^G8MfLBj{arlFmsg2da~G?A zPTWNv{o0KWUld_ks9cRVvY-w#du_)6y#p|T%j~PBuQ?Ce&-0F2epxl2eu=NDQoN&- zuNhFVh)i0M<7U9PTG^V#!`c{CRC^%aJy77}%BE9ZOuP|$q)Unp>HBeEJ*`}`k{iVi ziHYkfBm=Lm^V|p5OTMKrH3Yrgr(K&e4#?cl^d`7!X*&^!H|J}$-Zc6z&=$OHt90Pj zF^V5$ujXJ+F-F&eZS zBrlV?*YV?*BFndnM5!EJj1Zd<9jeSd#MD0Zn9%)Z;~%?dPmd6pDyp1}vgxm89*Q;a zFEQ|bM`WlgnL?~#5P#8%!I$}l$E7&=uM!KQkJm}Qev6|BJOsIRLcAv z?Y*vXlAGlpZeETy*(|$9=aqwZBP+wNzEu(Vxdm)E^_7RZq)x|j{lOuW`JFbGQ`NIO zNS2}Eqh>4v(>P+^HTkkM>R1q7Tofr6eF~iAOcr7<#qY^reZTaukWTM+p9F*?GeTz9 zassxxRf&KyoX>yh+BnexGLBpIi@>|QiWCMO71odk`V2M14}D~pnRokGpc5KV`KLOuu@PN(fWoTTSB^H+H1#5&-eJ zoRr>S&GF+qHOXcII&6}|3)i%fWs&WFpnZwYr0EmHR?|t_9yI{*Qjj6UWU}~M?&G80 zH8Qc5g_qi&tv1i-oIsc(O}6R#`#ojd;1_F>%4g|QwfER}QyD}*y5K@mdirLO;=GZo zO4sJ77Kgw7O{{zkxeLZE#QxXR-0?0AVP&cKUB6K1gP3-7Zq&s$QMhtZX>g@nK}~zk zMowbm)i0#~gzt5Xjg{?x{46JFqz=Ct4t6=ZH$Un)7x*ZB*2R8E(O^K-Cn)be(ZCQ^ zZK{0mL*F#>u*JUI!ND*tmG#u#o_vPM%yKz7b!TTRdTSY_&w2;xV~^ApZW^|Im0H_c zOp8$=^(3RJBF{eDR2fVQPl@_ol*5^9dLcLB`DaYNR=iM9wrL4q_a67;(^w8@WAzBoSPyl(Bhh6k#a6bf{DNjgx`kk}&r>*Gytq z=FB+%G))0rO6Yy+G+_5)3q30i+=#rwM>g-KRt&RrwF+UJiL4_mB-Jt@YG1(O(x zp&25rQf3w@Q3ePVZ>SHfW25{R$e%2Ix~PD8H{AjIY8Q6#yP$EK^Ae-qC#@Et1iXmQ ziZC{uCvyuIIdRLr%lj|*HVdeL`BA*&p&b`-fwz|6M5XYH%2N=HNMVWut-*LTiubSs zmU4rQx1n+xPwE~%qJmQ*!&v&F*G|7*)eGptLJ3w}6LIlet)}?K+R5__pAcYLo-BgxT zl*t#V{U;yQFolpDB!pkL#pNYw*A+`1UG8X+>G}+)GGcB-qUxonKVcM&PhA*-4AJIP zlUuG_^+-FmA3+*Mjb^z*fT%uz8j?lW^cIS9o|`ag82@k}dL(M^Y)@W-Q{Ww)pKu<- z_WRPxQYu|8p}Xa2KD7^aXd^#R(gzDxvcu^8F(MOPqG1i+Cy@H^vP05p<*iLR7-PCP z{ayyRY{fS8twjbVZqw7}sH8jBPP@hM(TNJ#Vu~29E|1tGNF_p^l}Cx&f42E!0D@V? zS|R(*3p%x0qmC!iWLT)^4-09B;KSTB_H2sq`Im^di zR0|7YCA*U)F�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 RZ2<6(vVw+ut(;lt{{i*B6D$A# literal 0 HcmV?d00001 diff --git a/logo/thunderbird/pre60/mailicon32.png b/logo/thunderbird/pre60/mailicon32.png new file mode 100644 index 0000000000000000000000000000000000000000..9345f88cada1877b0585fb3749b8bcb297afaab5 GIT binary patch literal 2619 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 b!Px%-Wv4Gavy&k%00000NkvXXu0mjfKa4;C literal 0 HcmV?d00001 diff --git a/logo/thunderbird/pre60/mailicon512.png b/logo/thunderbird/pre60/mailicon512.png new file mode 100644 index 0000000000000000000000000000000000000000..907bb1b8a2c2fb857c2e18716e1c610794c2d14a GIT binary patch literal 117944 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 + + + + Mozilla Thunderbird Logo + + + + image/svg+xml + + Mozilla Thunderbird Logo + + + + + + https://de.wikipedia.org/wiki/Datei:Mozilla_Thunderbird_Logo.svg + + + Mozilla Foundation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/logo/thunderbird/thunderbird.svg b/logo/thunderbird/thunderbird.svg new file mode 100644 index 0000000000..1cf2ac91c0 --- /dev/null +++ b/logo/thunderbird/thunderbird.svg @@ -0,0 +1,253 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mozconfig.default b/mozconfig.default new file mode 100644 index 0000000000..d4e0bbb540 --- /dev/null +++ b/mozconfig.default @@ -0,0 +1,130 @@ +# -*- mode: makefile; coding: utf-8 -*- + +# mozconfig.default +# default settings for the various builds of Mozilla applications +# +# This file is needed to build multiple applications from the source. +# It set up some variables that are used in all builds, or they will be +# overriden later by some builds. The Mozilla buildsystem supports various +# builds from the same source by seperate obj-$directorys. +# Further informations around the multiple applications build can be found +# on +# +# https://developer.mozilla.org/en-US/docs/Configuring_Build_Options#Building_with_an_Objdir +# +# The application specific obj-dir is setup within the seperate +# mozconfig.$APPLICATION file! + +# use/use not packaged software instead of preshipped +ac_add_options --without-system-jpeg # Debian version causes issues on mips* +ac_add_options --with-system-bz2 +ac_add_options --with-system-icu +ac_add_options --with-system-nspr +ac_add_options --with-system-nss +ac_add_options --with-system-zlib + +# other packaged software +ac_add_options --with-system-libevent +ac_add_options --with-system-libvpx + +# disabled features +ac_add_options --disable-av1 +ac_add_options --disable-gconf +ac_add_options --disable-install-strip +ac_add_options --disable-strip +ac_add_options --disable-tests +ac_add_options --disable-updater +ac_add_options --disable-webrtc + +# enabled features +ac_add_options --enable-default-toolkit=cairo-gtk3 +ac_add_options --enable-extensions=default +ac_add_options --enable-official-branding # use the official artwork +ac_add_options --enable-optimize +ac_add_options --enable-readline +ac_add_options --enable-startup-notification +ac_add_options --enable-system-ffi +ac_add_options --enable-system-sqlite + +# Debian specific things +PARALLEL_BUILD=$(echo $DEB_BUILD_OPTIONS | sed -e '/parallel=/!s/.*/1/;s/.*parallel=\([0-9]\+\).*/\1/g') +mk_add_options MOZ_MAKE_FLAGS="-j$PARALLEL_BUILD" +ac_add_options --with-distribution-id=org.debian +ac_add_options --with-user-appdir=.mozilla +ac_add_options --disable-debug +ac_add_options --host=$DEB_HOST_GNU_TYPE + +# some platform depended things +case `dpkg --print-architecture` in + alpha) + ac_add_options --enable-optimize=-O1 + ;; +# amd64) +# ac_add_options --enable-crashreporter +# ;; + arm64) + ac_add_options --enable-optimize=-O1 + ;; + armel) + ac_add_options --enable-optimize=-O1 +# ac_add_options --enable-crashreporter + ;; + armhf) + ac_add_options --enable-optimize=-O1 +# ac_add_options --enable-crashreporter + ;; + hurd-i386) + ac_add_options --disable-necko-wifi + ;; + hppa) + ac_add_options --disable-optimize + ac_add_options --with-intl-api + ;; + i386) +# ac_add_options --enable-crashreporter + ;; + ia64) + ac_add_options --enable-optimize=-O2 + ;; + kfreebsd-i386) + ac_add_options --disable-necko-wifi + ;; + kfreebsd-amd64) + ac_add_options --disable-necko-wifi + ;; + m68k) + ac_add_options --with-intl-api + ;; + mips) + ac_add_options --with-intl-api + ac_add_options --disable-ion + ;; + mipsel) + ac_add_options --with-intl-api + ac_add_options --disable-ion + ;; + powerpc) + ac_add_options --with-intl-api + ;; + powerpcspe) + ac_add_options --with-intl-api + ;; + ppc64) + ac_add_options --disable-optimize + ac_add_options --with-intl-api + ;; + sh4) + ac_add_options --disable-pie + ;; + sparc) + ac_add_options --enable-optimize=-O1 + ac_add_options --with-intl-api + ;; + sparc64) + ac_add_options --with-intl-api + ;; + s390x) + ac_add_options --enable-optimize=-O1 + ac_add_options --with-intl-api + ;; +esac diff --git a/mozconfig.thunderbird b/mozconfig.thunderbird new file mode 100644 index 0000000000..9f42bf43bc --- /dev/null +++ b/mozconfig.thunderbird @@ -0,0 +1,17 @@ +# -*- mode: makefile; coding: utf-8 -*- + +# mozconfig.thunderbird +# settings for the build of Icedove +# +# This file set up extra config options for the build of the Thunderbird +# application. +# Remember, options here will be overriden by sourcing any file later! + +# sourcing the default common settings +. $topsrcdir/mozconfig.default + +# Debian specific things +ac_add_options --enable-application=comm/mail # enable Thunderbird +ac_add_options --enable-calendar # enable Lightning + +# setting the obj-dir (build directory, filled in by debian/rules) diff --git a/patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch b/patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch new file mode 100644 index 0000000000..65b91f258e --- /dev/null +++ b/patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch @@ -0,0 +1,30 @@ +From: Mike Hommey +Date: Sat, 21 Jun 2008 03:09:21 +0200 +Subject: Add another preferences directory for applications: + preferences/syspref + +This can be used to symlink to /etc/thunderbird/pref. +--- + toolkit/xre/nsXREDirProvider.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp +index 44d998f..cec3af7 100644 +--- a/toolkit/xre/nsXREDirProvider.cpp ++++ b/toolkit/xre/nsXREDirProvider.cpp +@@ -848,6 +848,7 @@ static nsresult DeleteDirIfExists(nsIFile* dir) { + + static const char* const kAppendPrefDir[] = {"defaults", "preferences", + nullptr}; ++static const char *const kAppendSysPrefDir[] = { "defaults", "syspref", nullptr }; + + #ifdef DEBUG_bsmedberg + static void DumpFileArray(const char* key, nsCOMArray dirs) { +@@ -879,6 +880,7 @@ nsresult nsXREDirProvider::GetFilesInternal(const char* aProperty, + + LoadDirIntoArray(mXULAppDir, kAppendPrefDir, directories); + LoadDirsIntoArray(mAppBundleDirectories, kAppendPrefDir, directories); ++ LoadDirIntoArray(mXULAppDir, kAppendSysPrefDir, directories); + + rv = NS_NewArrayEnumerator(aResult, directories, NS_GET_IID(nsIFile)); + } else if (!strcmp(aProperty, NS_APP_CHROME_DIR_LIST)) { diff --git a/patches/debian-hacks/Build-against-system-libjsoncpp.patch b/patches/debian-hacks/Build-against-system-libjsoncpp.patch new file mode 100644 index 0000000000..8644fbe4ac --- /dev/null +++ b/patches/debian-hacks/Build-against-system-libjsoncpp.patch @@ -0,0 +1,93 @@ +From: Mike Hommey +Date: Tue, 9 May 2017 10:41:13 +0200 +Subject: Build against system libjsoncpp + +--- + config/system-headers.mozbuild | 1 + + toolkit/components/jsoncpp/src/lib_json/moz.build | 48 +---------------------- + toolkit/crashreporter/minidump-analyzer/moz.build | 2 +- + 3 files changed, 3 insertions(+), 48 deletions(-) + +diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild +index bcf5c49..5528d25 100644 +--- a/config/system-headers.mozbuild ++++ b/config/system-headers.mozbuild +@@ -363,6 +363,7 @@ system_headers = [ + 'jar-ds.h', + 'jarfile.h', + 'jar.h', ++ 'json/json.h', + 'JavaControl.h', + 'JavaEmbedding/JavaControl.h', + 'JavaVM/jni.h', +diff --git a/toolkit/components/jsoncpp/src/lib_json/moz.build b/toolkit/components/jsoncpp/src/lib_json/moz.build +index ca40df6..5e20a3d 100644 +--- a/toolkit/components/jsoncpp/src/lib_json/moz.build ++++ b/toolkit/components/jsoncpp/src/lib_json/moz.build +@@ -4,52 +4,6 @@ + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + +-UNIFIED_SOURCES += [ +- 'json_reader.cpp', +- 'json_value.cpp', +- 'json_writer.cpp' +-] +- +-LOCAL_INCLUDES += [ +- '/toolkit/components/jsoncpp/include', +-] +- +-# This code is only used in the stand-alone minidump analyzer executable so +-# enabling exceptions should be fine. +-if CONFIG['CC_TYPE'] == 'clang-cl': +- CXXFLAGS += [ +- '-Xclang', +- '-fcxx-exceptions', +- ] +-else: +- CXXFLAGS += [ +- '-fexceptions', +- ] +- +-# Required to build with exceptions enabled +-DisableStlWrapping() +- + Library('jsoncpp') + +-# Suppress warnings in third-party code. +-if CONFIG['CC_TYPE'] == 'clang-cl': +- CXXFLAGS += [ +- '-Wno-macro-redefined', +- ] +-elif CONFIG['CC_TYPE'] in ('clang', 'gcc'): +- CXXFLAGS += [ +- '-Wno-unused-local-typedefs', +- '-Wno-shadow', +- ] +- +-if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'): +- CXXFLAGS += [ +- '-Wno-c++11-narrowing', +- ] +- +-CXXFLAGS += [ +- '-Wno-implicit-fallthrough', +-] +- +-if CONFIG['CC_TYPE'] == 'clang-cl': +- AllowCompilerWarnings() # workaround for bug 1090497 ++OS_LIBS += ['jsoncpp'] +diff --git a/toolkit/crashreporter/minidump-analyzer/moz.build b/toolkit/crashreporter/minidump-analyzer/moz.build +index 5902273..20b9733 100644 +--- a/toolkit/crashreporter/minidump-analyzer/moz.build ++++ b/toolkit/crashreporter/minidump-analyzer/moz.build +@@ -48,7 +48,7 @@ USE_LIBS += [ + ] + + LOCAL_INCLUDES += [ +- '/toolkit/components/jsoncpp/include', ++ '%/usr/include/jsoncpp', + ] + + if CONFIG['OS_TARGET'] != 'WINNT': diff --git a/patches/debian-hacks/Don-t-error-out-when-run-time-libsqlite-is-older-tha.patch b/patches/debian-hacks/Don-t-error-out-when-run-time-libsqlite-is-older-tha.patch new file mode 100644 index 0000000000..6a664bf093 --- /dev/null +++ b/patches/debian-hacks/Don-t-error-out-when-run-time-libsqlite-is-older-tha.patch @@ -0,0 +1,30 @@ +From: Mike Hommey +Date: Mon, 5 Apr 2010 17:58:23 +0200 +Subject: Don't error-out when run-time libsqlite is older than build-time + libsqlite + +In Debian, we have shlibs to handle this. +--- + storage/mozStorageService.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/storage/mozStorageService.cpp b/storage/mozStorageService.cpp +index 5b3e6ed..aafd5aa 100644 +--- a/storage/mozStorageService.cpp ++++ b/storage/mozStorageService.cpp +@@ -184,6 +184,7 @@ already_AddRefed Service::getSingleton() { + return do_AddRef(gService); + } + ++#if 0 + // Ensure that we are using the same version of SQLite that we compiled with + // or newer. Our configure check ensures we are using a new enough version + // at compile time. +@@ -208,6 +209,7 @@ already_AddRefed Service::getSingleton() { + } + MOZ_CRASH("SQLite Version Error"); + } ++#endif + + // The first reference to the storage service must be obtained on the + // main thread. diff --git a/patches/debian-hacks/Don-t-register-plugins-if-the-MOZILLA_DISABLE_PLUGIN.patch b/patches/debian-hacks/Don-t-register-plugins-if-the-MOZILLA_DISABLE_PLUGIN.patch new file mode 100644 index 0000000000..fb4f842f99 --- /dev/null +++ b/patches/debian-hacks/Don-t-register-plugins-if-the-MOZILLA_DISABLE_PLUGIN.patch @@ -0,0 +1,24 @@ +From: Mike Hommey +Date: Sat, 27 Sep 2008 17:17:39 +0200 +Subject: Don't register plugins if the MOZILLA_DISABLE_PLUGINS environment + variable is set + +--- + dom/plugins/base/nsPluginHost.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.cpp +index 4101324..e905b7a 100644 +--- a/dom/plugins/base/nsPluginHost.cpp ++++ b/dom/plugins/base/nsPluginHost.cpp +@@ -362,6 +362,10 @@ nsPluginHost::nsPluginHost() + + Preferences::AddStrongObserver(this, "plugin.disable"); + ++ const char *env = PR_GetEnv("MOZILLA_DISABLE_PLUGINS"); ++ if (env && env[0]) ++ mPluginsDisabled = PR_TRUE; ++ + nsCOMPtr obsService = + mozilla::services::GetObserverService(); + if (obsService) { diff --git a/patches/debian-hacks/Downgrade-SQlite-version-to-3.27.2.patch b/patches/debian-hacks/Downgrade-SQlite-version-to-3.27.2.patch new file mode 100644 index 0000000000..b09cc9253b --- /dev/null +++ b/patches/debian-hacks/Downgrade-SQlite-version-to-3.27.2.patch @@ -0,0 +1,26 @@ +From: Carsten Schoenert +Date: Sat, 15 Jun 2019 17:33:59 +0200 +Subject: Downgrade SQlite version to 3.27.2 + +The build is requiring a installed SQlite3 version of >= 3.28.0 which is +quite a recent upstream version. +Typically Thunderbird isn't using the most recent functions from SQlite +and we can safely downgrade the build requirement for SQlite. +Downgrading the version the version which is available on unstable. +--- + old-configure.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/old-configure.in b/old-configure.in +index 5981adf..8f1bd5b 100644 +--- a/old-configure.in ++++ b/old-configure.in +@@ -63,7 +63,7 @@ GDK_VERSION_MAX_ALLOWED=GDK_VERSION_3_4 + W32API_VERSION=3.14 + STARTUP_NOTIFICATION_VERSION=0.8 + DBUS_VERSION=0.60 +-SQLITE_VERSION=3.28.0 ++SQLITE_VERSION=3.27.2 + + dnl Set various checks + dnl ======================================================== diff --git a/patches/debian-hacks/Make-Thunderbird-build-reproducible.patch b/patches/debian-hacks/Make-Thunderbird-build-reproducible.patch new file mode 100644 index 0000000000..825a385c71 --- /dev/null +++ b/patches/debian-hacks/Make-Thunderbird-build-reproducible.patch @@ -0,0 +1,31 @@ +From: Carsten Schoenert +Date: Sun, 6 Oct 2019 10:03:15 +0200 +Subject: Make Thunderbird build reproducible + +Cherry picked from OpenSuse +https://build.opensuse.org/request/show/732106 +--- + python/mozbuild/mozbuild/action/langpack_manifest.py | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/python/mozbuild/mozbuild/action/langpack_manifest.py b/python/mozbuild/mozbuild/action/langpack_manifest.py +index 6f72697..d4cca96 100644 +--- a/python/mozbuild/mozbuild/action/langpack_manifest.py ++++ b/python/mozbuild/mozbuild/action/langpack_manifest.py +@@ -16,6 +16,7 @@ import os + import json + import io + import datetime ++import time + import requests + import mozversioncontrol + import mozpack.path as mozpath +@@ -100,7 +101,7 @@ def get_timestamp_for_locale(path): + dt = get_dt_from_hg(path) + + if dt is None: +- dt = datetime.datetime.utcnow() ++ dt = datetime.datetime.utcfromtimestamp(int(os.environ.get('SOURCE_DATE_EPOCH', time.time()))) + + dt = dt.replace(microsecond=0) + return dt.strftime("%Y%m%d%H%M%S") diff --git a/patches/debian-hacks/Set-program-name-from-the-remoting-name.patch b/patches/debian-hacks/Set-program-name-from-the-remoting-name.patch new file mode 100644 index 0000000000..2511f125cc --- /dev/null +++ b/patches/debian-hacks/Set-program-name-from-the-remoting-name.patch @@ -0,0 +1,21 @@ +From: Mike Hommey +Date: Sun, 5 Feb 2017 08:41:22 +0900 +Subject: Set program name from the remoting name + +--- + toolkit/xre/nsAppRunner.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp +index d3d2d66..3dddf5c 100644 +--- a/toolkit/xre/nsAppRunner.cpp ++++ b/toolkit/xre/nsAppRunner.cpp +@@ -3763,7 +3763,7 @@ int XREMain::XRE_mainStartup(bool* aExitFlag) { + + // Set program name to the one defined in application.ini. + { +- nsAutoCString program(gAppData->name); ++ nsAutoCString program(gAppData->remotingName); + ToLowerCase(program); + g_set_prgname(program.get()); + } diff --git a/patches/debian-hacks/Strip-version-number-from-application-before-installation.patch b/patches/debian-hacks/Strip-version-number-from-application-before-installation.patch new file mode 100644 index 0000000000..f7f4df8134 --- /dev/null +++ b/patches/debian-hacks/Strip-version-number-from-application-before-installation.patch @@ -0,0 +1,24 @@ +From: =?utf-8?q?Guido_G=C3=BCnther?= +Date: Sat, 24 Nov 2012 11:39:58 +0100 +Subject: Strip version number from application before installation + +Strip thunderbird's version number from the installation directories so +we have a fixed location for extensions that build against it. +--- + config/baseconfig.mk | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/config/baseconfig.mk b/config/baseconfig.mk +index d2cec0e..e34e917 100644 +--- a/config/baseconfig.mk ++++ b/config/baseconfig.mk +@@ -3,6 +3,9 @@ + # We thus use INCLUDED_AUTOCONF_MK to enable/disable some parts depending + # whether a normal build is happening or whether the check is running. + installdir = $(libdir)/$(MOZ_APP_NAME) ++includedir := $(includedir)/$(MOZ_APP_NAME) ++idldir = $(datadir)/idl/$(MOZ_APP_NAME) ++sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel + ifeq (.,$(DEPTH)) + DIST = dist + else diff --git a/patches/debian-hacks/Use-remoting-name-for-call-to-gdk_set_program_class.patch b/patches/debian-hacks/Use-remoting-name-for-call-to-gdk_set_program_class.patch new file mode 100644 index 0000000000..d8d4d93733 --- /dev/null +++ b/patches/debian-hacks/Use-remoting-name-for-call-to-gdk_set_program_class.patch @@ -0,0 +1,34 @@ +From: Mike Hommey +Date: Mon, 3 Sep 2018 07:37:40 +0900 +Subject: Use remoting name for call to gdk_set_program_class + +Closes: #907574 +--- + widget/gtk/nsAppShell.cpp | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +diff --git a/widget/gtk/nsAppShell.cpp b/widget/gtk/nsAppShell.cpp +index b4010bf..2af4072 100644 +--- a/widget/gtk/nsAppShell.cpp ++++ b/widget/gtk/nsAppShell.cpp +@@ -24,6 +24,7 @@ + # include "WakeLockListener.h" + #endif + #include "gfxPlatform.h" ++#include "nsAppRunner.h" + #include "ScreenHelperGTK.h" + #include "HeadlessScreenHelper.h" + #include "mozilla/widget/ScreenManager.h" +@@ -174,10 +175,8 @@ nsresult nsAppShell::Init() { + // option when program uses gdk_set_program_class(). + // + // See https://bugzilla.gnome.org/show_bug.cgi?id=747634 +- nsAutoString brandName; +- mozilla::widget::WidgetUtils::GetBrandShortName(brandName); +- if (!brandName.IsEmpty()) { +- gdk_set_program_class(NS_ConvertUTF16toUTF8(brandName).get()); ++ if (gAppData) { ++ gdk_set_program_class(gAppData->remotingName); + } + } + diff --git a/patches/debian-hacks/Work-around-Debian-bug-844357.patch b/patches/debian-hacks/Work-around-Debian-bug-844357.patch new file mode 100644 index 0000000000..e8670357bb --- /dev/null +++ b/patches/debian-hacks/Work-around-Debian-bug-844357.patch @@ -0,0 +1,20 @@ +From: Mike Hommey +Date: Mon, 21 Nov 2016 08:15:38 +0900 +Subject: Work around Debian bug #844357 + +--- + widget/gtk/mozgtk/gtk3/moz.build | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/widget/gtk/mozgtk/gtk3/moz.build b/widget/gtk/mozgtk/gtk3/moz.build +index 4e93795..538ef1a 100644 +--- a/widget/gtk/mozgtk/gtk3/moz.build ++++ b/widget/gtk/mozgtk/gtk3/moz.build +@@ -36,3 +36,7 @@ OS_LIBS += [ + 'gdk-3', + ] + OS_LIBS += as_needed ++ ++# Work around Debian bug #844357 ++if CONFIG['CPU_ARCH'].startswith('mips'): ++ OS_LIBS += ['-Wl,--no-gc-sections'] diff --git a/patches/debian-hacks/stop-configure-if-with-system-bz2-was-passed-but-no-.patch b/patches/debian-hacks/stop-configure-if-with-system-bz2-was-passed-but-no-.patch new file mode 100644 index 0000000000..adb5aa698e --- /dev/null +++ b/patches/debian-hacks/stop-configure-if-with-system-bz2-was-passed-but-no-.patch @@ -0,0 +1,48 @@ +From: =?utf-8?q?Guido_G=C3=BCnther?= +Date: Thu, 25 Oct 2012 19:37:44 +0200 +Subject: stop configure if '--with-system-bz2' was passed, + but no libbz2 is around + +--- + old-configure.in | 28 ++++++++++++++++++++++++++++ + 1 file changed, 28 insertions(+) + +diff --git a/old-configure.in b/old-configure.in +index ec1fae7..5981adf 100644 +--- a/old-configure.in ++++ b/old-configure.in +@@ -1557,6 +1557,34 @@ dnl ======================================================== + MOZ_ZLIB_CHECK([1.2.3]) + + if test -z "$SKIP_LIBRARY_CHECKS"; then ++dnl system BZIP2 Support ++dnl ======================================================== ++MOZ_ARG_WITH_STRING(system-bz2, ++[ --with-system-bz2[=PFX] ++ Use system libbz2 [installed at prefix PFX]], ++ BZ2_DIR=$withval) ++ ++_SAVE_CFLAGS=$CFLAGS ++_SAVE_LDFLAGS=$LDFLAGS ++_SAVE_LIBS=$LIBS ++if test -n "${BZ2_DIR}" -a "${BZ2_DIR}" != "yes"; then ++ CFLAGS="-I${BZ2_DIR}/include $CFLAGS" ++ LDFLAGS="-L${BZ2_DIR}/lib $LDFLAGS" ++fi ++if test -z "$BZ2_DIR" -o "$BZ2_DIR" = no; then ++ MOZ_SYSTEM_BZ2= ++else ++ AC_CHECK_LIB(bz2, BZ2_bzread, [MOZ_SYSTEM_BZ2=1 MOZ_BZ2_LIBS="-lbz2"], ++ [AC_MSG_ERROR([You have run configure with --with-system-bz2, but there is no libbz2 around!])]) ++fi ++CFLAGS=$_SAVE_CFLAGS ++LDFLAGS=$_SAVE_LDFLAGS ++LIBS=$_SAVE_LIBS ++ ++if test "${BZ2_DIR}" -a -d "${BZ2_DIR}" -a "$MOZ_SYSTEM_BZ2" = 1; then ++ MOZ_BZ2_CFLAGS="-I${BZ2_DIR}/include" ++ MOZ_BZ2_LIBS="-L${BZ2_DIR}/lib ${MOZ_BZ2_LIBS}" ++fi + + dnl ======================================================== + dnl system PNG Support diff --git a/patches/debian-hacks/use-icudt-b-l-.dat-depending-on-architecture.patch b/patches/debian-hacks/use-icudt-b-l-.dat-depending-on-architecture.patch new file mode 100644 index 0000000000..111ea8fea0 --- /dev/null +++ b/patches/debian-hacks/use-icudt-b-l-.dat-depending-on-architecture.patch @@ -0,0 +1,65 @@ +From: Carsten Schoenert +Date: Sun, 27 Aug 2017 21:14:01 +0200 +Subject: use icudt??{b,l}.dat depending on architecture + +Upstream doesn't really care about big endian platforms and so also don't +care about a needed file icudt??b.dat on big endian platforms. Changing +the m4 macro for ICU so the needed file will be depended on the build +platform exported and let later the configure run automatically use the +correct name for the ICU *.dat file so we not only depend on the +prebuild *.dat file for little endian. + +The `case foo in ...` loop could be obviously more compressed with only +one case entry for all architectures which are all big endian. + +---%<--- + case $host in + dnl big endian architectures + hppa-*|m68k-*|...) +--->%--- + +For more readability the more exclusive extra list of all possible +architectures with big endianness in Debian was choosen. +--- + build/autoconf/icu.m4 | 28 +++++++++++++++++++++++++++- + 1 file changed, 27 insertions(+), 1 deletion(-) + +diff --git a/build/autoconf/icu.m4 b/build/autoconf/icu.m4 +index 6afa262..8040193 100644 +--- a/build/autoconf/icu.m4 ++++ b/build/autoconf/icu.m4 +@@ -78,7 +78,33 @@ if test -n "$USE_ICU"; then + # TODO: the l is actually endian-dependent + # We could make this set as 'l' or 'b' for little or big, respectively, + # but we'd need to check in a big-endian version of the file. +- ICU_DATA_FILE="icudt${version}l.dat" ++ case $host in ++ dnl big endian architectures ++ hppa-*) ++ ICU_DATA_FILE="icudt${version}b.dat" ++ ;; ++ m68k-*) ++ ICU_DATA_FILE="icudt${version}b.dat" ++ ;; ++ mips-*) ++ ICU_DATA_FILE="icudt${version}b.dat" ++ ;; ++ powerpc-* | powerpc64-*) ++ ICU_DATA_FILE="icudt${version}b.dat" ++ ;; ++ s390*-*) ++ ICU_DATA_FILE="icudt${version}b.dat" ++ ;; ++ sparc*-*) ++ ICU_DATA_FILE="icudt${version}b.dat" ++ ;; ++ dnl assume little endian by default ++ *) ++ ICU_DATA_FILE="icudt${version}l.dat" ++ ;; ++ esac ++ ++ MOZ_ICU_DATA_ARCHIVE= + fi + + AC_SUBST(MOZ_ICU_VERSION) diff --git a/patches/fixes/Allow-.js-preference-files-to-set-locked-prefs-with-lockP.patch b/patches/fixes/Allow-.js-preference-files-to-set-locked-prefs-with-lockP.patch new file mode 100644 index 0000000000..4c051e258a --- /dev/null +++ b/patches/fixes/Allow-.js-preference-files-to-set-locked-prefs-with-lockP.patch @@ -0,0 +1,70 @@ +From: Mike Hommey +Date: Sat, 21 Jun 2008 02:48:46 +0200 +Subject: Allow .js preference files to set locked prefs with lockPref() + +--- + modules/libpref/parser/src/lib.rs | 16 +++++++++------- + 1 file changed, 9 insertions(+), 7 deletions(-) + +diff --git a/modules/libpref/parser/src/lib.rs b/modules/libpref/parser/src/lib.rs +index ca253e2..35bdaed 100644 +--- a/modules/libpref/parser/src/lib.rs ++++ b/modules/libpref/parser/src/lib.rs +@@ -10,7 +10,7 @@ + //! + //! = * + //! = "(" "," ")" ";" +-//! = "user_pref" | "pref" | "sticky_pref" ++//! = "user_pref" | "pref" | "sticky_pref | lockPref" + //! = + //! = | "true" | "false" | + //! = ? +@@ -153,6 +153,7 @@ enum Token { + // Keywords + Pref, // pref + StickyPref, // sticky_pref ++ LockPref, // lockPref + UserPref, // user_pref + True, // true + False, // false +@@ -273,7 +274,7 @@ struct KeywordInfo { + token: Token, + } + +-const KEYWORD_INFOS: [KeywordInfo; 7] = [ ++const KEYWORD_INFOS: [KeywordInfo; 8] = [ + // These are ordered by frequency. + KeywordInfo { string: b"pref", token: Token::Pref }, + KeywordInfo { string: b"true", token: Token::True }, +@@ -282,6 +283,7 @@ const KEYWORD_INFOS: [KeywordInfo; 7] = [ + KeywordInfo { string: b"sticky", token: Token::Sticky }, + KeywordInfo { string: b"locked", token: Token::Locked }, + KeywordInfo { string: b"sticky_pref", token: Token::StickyPref }, ++ KeywordInfo { string: b"lockPref", token: Token::LockPref }, + ]; + + struct Parser<'t> { +@@ -329,10 +331,11 @@ impl<'t> Parser<'t> { + // this will be either the first token of a new pref, or EOF. + loop { + // +- let (pref_value_kind, mut is_sticky) = match token { +- Token::Pref => (PrefValueKind::Default, false), +- Token::StickyPref => (PrefValueKind::Default, true), +- Token::UserPref => (PrefValueKind::User, false), ++ let (pref_value_kind, mut is_sticky, mut is_locked) = match token { ++ Token::Pref => (PrefValueKind::Default, false, false), ++ Token::StickyPref => (PrefValueKind::Default, true, false), ++ Token::LockPref => (PrefValueKind::Default, false, true), ++ Token::UserPref => (PrefValueKind::User, false, false), + Token::SingleChar(EOF) => return !self.has_errors, + _ => { + token = self.error_and_recover( +@@ -431,7 +434,6 @@ impl<'t> Parser<'t> { + }; + + // ("," )* // default pref files only +- let mut is_locked = false; + let mut has_attrs = false; + if self.kind == PrefValueKind::Default { + let ok = loop { diff --git a/patches/fixes/Bug-1531309-Don-t-use-__PRETTY_FUNCTION__-or-__FUNCTION__.patch b/patches/fixes/Bug-1531309-Don-t-use-__PRETTY_FUNCTION__-or-__FUNCTION__.patch new file mode 100644 index 0000000000..76406af66c --- /dev/null +++ b/patches/fixes/Bug-1531309-Don-t-use-__PRETTY_FUNCTION__-or-__FUNCTION__.patch @@ -0,0 +1,510 @@ +From: Mike Hommey +Date: Sun, 18 Aug 2019 20:19:35 +0900 +Subject: Bug 1531309 - Don't use __PRETTY_FUNCTION__ or __FUNCTION__ as + format strings. r?sylvestre + +__PRETTY_FUNCTION__ and __FUNCTION__ are not guaranteed to be a string +literal, and only string literals should be used as format strings. GCC +9 complains about this with -Werror=format-security. +--- + dom/media/systemservices/CamerasChild.cpp | 32 ++++++++++---------- + dom/media/systemservices/CamerasParent.cpp | 36 +++++++++++------------ + dom/media/systemservices/MediaParent.cpp | 4 +-- + dom/media/systemservices/VideoEngine.cpp | 10 +++---- + dom/media/webrtc/MediaEngineRemoteVideoSource.cpp | 24 +++++++-------- + 5 files changed, 53 insertions(+), 53 deletions(-) + +diff --git a/dom/media/systemservices/CamerasChild.cpp b/dom/media/systemservices/CamerasChild.cpp +index e661eff..605a16a 100644 +--- a/dom/media/systemservices/CamerasChild.cpp ++++ b/dom/media/systemservices/CamerasChild.cpp +@@ -158,7 +158,7 @@ int CamerasChild::AddDeviceChangeCallback(DeviceChangeCallback* aCallback) { + } + + mozilla::ipc::IPCResult CamerasChild::RecvReplyFailure(void) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + MonitorAutoLock monitor(mReplyMonitor); + mReceivedReply = true; + mReplySuccess = false; +@@ -167,7 +167,7 @@ mozilla::ipc::IPCResult CamerasChild::RecvReplyFailure(void) { + } + + mozilla::ipc::IPCResult CamerasChild::RecvReplySuccess(void) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + MonitorAutoLock monitor(mReplyMonitor); + mReceivedReply = true; + mReplySuccess = true; +@@ -177,7 +177,7 @@ mozilla::ipc::IPCResult CamerasChild::RecvReplySuccess(void) { + + mozilla::ipc::IPCResult CamerasChild::RecvReplyNumberOfCapabilities( + const int& numdev) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + MonitorAutoLock monitor(mReplyMonitor); + mReceivedReply = true; + mReplySuccess = true; +@@ -262,7 +262,7 @@ bool CamerasChild::DispatchToParent(nsIRunnable* aRunnable, + + int CamerasChild::NumberOfCapabilities(CaptureEngine aCapEngine, + const char* deviceUniqueIdUTF8) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + LOG(("NumberOfCapabilities for %s", deviceUniqueIdUTF8)); + nsCString unique_id(deviceUniqueIdUTF8); + nsCOMPtr runnable = +@@ -275,7 +275,7 @@ int CamerasChild::NumberOfCapabilities(CaptureEngine aCapEngine, + } + + int CamerasChild::NumberOfCaptureDevices(CaptureEngine aCapEngine) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + nsCOMPtr runnable = mozilla::NewRunnableMethod( + "camera::PCamerasChild::SendNumberOfCaptureDevices", this, + &CamerasChild::SendNumberOfCaptureDevices, aCapEngine); +@@ -286,7 +286,7 @@ int CamerasChild::NumberOfCaptureDevices(CaptureEngine aCapEngine) { + + mozilla::ipc::IPCResult CamerasChild::RecvReplyNumberOfCaptureDevices( + const int& numdev) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + MonitorAutoLock monitor(mReplyMonitor); + mReceivedReply = true; + mReplySuccess = true; +@@ -296,7 +296,7 @@ mozilla::ipc::IPCResult CamerasChild::RecvReplyNumberOfCaptureDevices( + } + + int CamerasChild::EnsureInitialized(CaptureEngine aCapEngine) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + nsCOMPtr runnable = mozilla::NewRunnableMethod( + "camera::PCamerasChild::SendEnsureInitialized", this, + &CamerasChild::SendEnsureInitialized, aCapEngine); +@@ -325,7 +325,7 @@ int CamerasChild::GetCaptureCapability( + + mozilla::ipc::IPCResult CamerasChild::RecvReplyGetCaptureCapability( + const VideoCaptureCapability& ipcCapability) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + MonitorAutoLock monitor(mReplyMonitor); + mReceivedReply = true; + mReplySuccess = true; +@@ -343,7 +343,7 @@ int CamerasChild::GetCaptureDevice( + CaptureEngine aCapEngine, unsigned int list_number, char* device_nameUTF8, + const unsigned int device_nameUTF8Length, char* unique_idUTF8, + const unsigned int unique_idUTF8Length, bool* scary) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + nsCOMPtr runnable = + mozilla::NewRunnableMethod( + "camera::PCamerasChild::SendGetCaptureDevice", this, +@@ -364,7 +364,7 @@ int CamerasChild::GetCaptureDevice( + mozilla::ipc::IPCResult CamerasChild::RecvReplyGetCaptureDevice( + const nsCString& device_name, const nsCString& device_id, + const bool& scary) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + MonitorAutoLock monitor(mReplyMonitor); + mReceivedReply = true; + mReplySuccess = true; +@@ -379,7 +379,7 @@ int CamerasChild::AllocateCaptureDevice( + CaptureEngine aCapEngine, const char* unique_idUTF8, + const unsigned int unique_idUTF8Length, int& aStreamId, + const mozilla::ipc::PrincipalInfo& aPrincipalInfo) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + nsCString unique_id(unique_idUTF8); + nsCOMPtr runnable = + mozilla::NewRunnableMethod runnable = + mozilla::NewRunnableMethod( + "camera::PCamerasChild::SendReleaseCaptureDevice", this, +@@ -442,7 +442,7 @@ void CamerasChild::RemoveCallback(const CaptureEngine aCapEngine, + int CamerasChild::StartCapture(CaptureEngine aCapEngine, const int capture_id, + webrtc::VideoCaptureCapability& webrtcCaps, + FrameRelay* cb) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + AddCallback(aCapEngine, capture_id, cb); + VideoCaptureCapability capCap( + webrtcCaps.width, webrtcCaps.height, webrtcCaps.maxFPS, +@@ -457,7 +457,7 @@ int CamerasChild::StartCapture(CaptureEngine aCapEngine, const int capture_id, + + int CamerasChild::FocusOnSelectedSource(CaptureEngine aCapEngine, + const int aCaptureId) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + nsCOMPtr runnable = + mozilla::NewRunnableMethod( + "camera::PCamerasChild::SendFocusOnSelectedSource", this, +@@ -467,7 +467,7 @@ int CamerasChild::FocusOnSelectedSource(CaptureEngine aCapEngine, + } + + int CamerasChild::StopCapture(CaptureEngine aCapEngine, const int capture_id) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + nsCOMPtr runnable = + mozilla::NewRunnableMethod( + "camera::PCamerasChild::SendStopCapture", this, +diff --git a/dom/media/systemservices/CamerasParent.cpp b/dom/media/systemservices/CamerasParent.cpp +index e3b2603..385c50f 100644 +--- a/dom/media/systemservices/CamerasParent.cpp ++++ b/dom/media/systemservices/CamerasParent.cpp +@@ -102,7 +102,7 @@ StaticMutex CamerasParent::sMutex; + + // InputObserver is owned by CamerasParent, and it has a ref to CamerasParent + void InputObserver::OnDeviceChange() { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + MOZ_ASSERT(mParent); + + RefPtr self(this); +@@ -201,7 +201,7 @@ nsresult CamerasParent::DispatchToVideoCaptureThread(RefPtr event) { + } + + void CamerasParent::StopVideoCapture() { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + // We are called from the main thread (xpcom-shutdown) or + // from PBackground (when the Actor shuts down). + // Shut down the WebRTC stack (on the capture thread) +@@ -283,7 +283,7 @@ ShmemBuffer CamerasParent::GetBuffer(size_t aSize) { + } + + void CallbackHelper::OnFrame(const webrtc::VideoFrame& aVideoFrame) { +- LOG_VERBOSE((__PRETTY_FUNCTION__)); ++ LOG_VERBOSE(("%s", __PRETTY_FUNCTION__)); + RefPtr runnable = nullptr; + // Get frame properties + camera::VideoFrameProperties properties; +@@ -319,7 +319,7 @@ mozilla::ipc::IPCResult CamerasParent::RecvReleaseFrame( + } + + bool CamerasParent::SetupEngine(CaptureEngine aCapEngine) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + StaticRefPtr& engine = sEngines[aCapEngine]; + + if (!engine) { +@@ -371,7 +371,7 @@ bool CamerasParent::SetupEngine(CaptureEngine aCapEngine) { + } + + void CamerasParent::CloseEngines() { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + if (!mWebRTCAlive) { + return; + } +@@ -411,7 +411,7 @@ void CamerasParent::CloseEngines() { + } + + VideoEngine* CamerasParent::EnsureInitialized(int aEngine) { +- LOG_VERBOSE((__PRETTY_FUNCTION__)); ++ LOG_VERBOSE(("%s", __PRETTY_FUNCTION__)); + // We're shutting down, don't try to do new WebRTC ops. + if (!mWebRTCAlive) { + return nullptr; +@@ -432,7 +432,7 @@ VideoEngine* CamerasParent::EnsureInitialized(int aEngine) { + // perhaps via Promises. + mozilla::ipc::IPCResult CamerasParent::RecvNumberOfCaptureDevices( + const CaptureEngine& aCapEngine) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + LOG(("CaptureEngine=%d", aCapEngine)); + RefPtr self(this); + RefPtr webrtc_runnable = NewRunnableFrom([self, aCapEngine]() { +@@ -466,7 +466,7 @@ mozilla::ipc::IPCResult CamerasParent::RecvNumberOfCaptureDevices( + + mozilla::ipc::IPCResult CamerasParent::RecvEnsureInitialized( + const CaptureEngine& aCapEngine) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + + RefPtr self(this); + RefPtr webrtc_runnable = NewRunnableFrom([self, aCapEngine]() { +@@ -496,7 +496,7 @@ mozilla::ipc::IPCResult CamerasParent::RecvEnsureInitialized( + + mozilla::ipc::IPCResult CamerasParent::RecvNumberOfCapabilities( + const CaptureEngine& aCapEngine, const nsCString& unique_id) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + LOG(("Getting caps for %s", unique_id.get())); + + RefPtr self(this); +@@ -533,7 +533,7 @@ mozilla::ipc::IPCResult CamerasParent::RecvNumberOfCapabilities( + mozilla::ipc::IPCResult CamerasParent::RecvGetCaptureCapability( + const CaptureEngine& aCapEngine, const nsCString& unique_id, + const int& num) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + LOG(("RecvGetCaptureCapability: %s %d", unique_id.get(), num)); + + RefPtr self(this); +@@ -586,7 +586,7 @@ mozilla::ipc::IPCResult CamerasParent::RecvGetCaptureCapability( + + mozilla::ipc::IPCResult CamerasParent::RecvGetCaptureDevice( + const CaptureEngine& aCapEngine, const int& aListNumber) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + + RefPtr self(this); + RefPtr webrtc_runnable = NewRunnableFrom([self, aCapEngine, +@@ -756,7 +756,7 @@ int CamerasParent::ReleaseCaptureDevice(const CaptureEngine& aCapEngine, + + mozilla::ipc::IPCResult CamerasParent::RecvReleaseCaptureDevice( + const CaptureEngine& aCapEngine, const int& numdev) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + LOG(("RecvReleaseCamera device nr %d", numdev)); + + RefPtr self(this); +@@ -788,12 +788,12 @@ mozilla::ipc::IPCResult CamerasParent::RecvReleaseCaptureDevice( + mozilla::ipc::IPCResult CamerasParent::RecvStartCapture( + const CaptureEngine& aCapEngine, const int& capnum, + const VideoCaptureCapability& ipcCaps) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + + RefPtr self(this); + RefPtr webrtc_runnable = NewRunnableFrom([self, aCapEngine, capnum, + ipcCaps]() { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + CallbackHelper** cbh; + int error = -1; + if (self->EnsureInitialized(aCapEngine)) { +@@ -915,7 +915,7 @@ mozilla::ipc::IPCResult CamerasParent::RecvStartCapture( + + mozilla::ipc::IPCResult CamerasParent::RecvFocusOnSelectedSource( + const CaptureEngine& aCapEngine, const int& aCapNum) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + RefPtr webrtc_runnable = NewRunnableFrom( + [self = RefPtr(this), aCapEngine, aCapNum]() { + if (auto engine = self->EnsureInitialized(aCapEngine)) { +@@ -977,7 +977,7 @@ void CamerasParent::StopCapture(const CaptureEngine& aCapEngine, + + mozilla::ipc::IPCResult CamerasParent::RecvStopCapture( + const CaptureEngine& aCapEngine, const int& capnum) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + + RefPtr self(this); + RefPtr webrtc_runnable = +@@ -1015,7 +1015,7 @@ void CamerasParent::StopIPC() { + } + + mozilla::ipc::IPCResult CamerasParent::RecvAllDone() { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + // Don't try to send anything to the child now + mChildIsAlive = false; + IProtocol* mgr = Manager(); +@@ -1027,7 +1027,7 @@ mozilla::ipc::IPCResult CamerasParent::RecvAllDone() { + + void CamerasParent::ActorDestroy(ActorDestroyReason aWhy) { + // No more IPC from here +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + StopIPC(); + // Shut down WebRTC (if we're not in full shutdown, else this + // will already have happened) +diff --git a/dom/media/systemservices/MediaParent.cpp b/dom/media/systemservices/MediaParent.cpp +index bf293b2..f85665f 100644 +--- a/dom/media/systemservices/MediaParent.cpp ++++ b/dom/media/systemservices/MediaParent.cpp +@@ -378,7 +378,7 @@ class OriginKeyStore : public nsISupports { + virtual ~OriginKeyStore() { + StaticMutexAutoLock lock(sOriginKeyStoreMutex); + sOriginKeyStore = nullptr; +- LOG((__FUNCTION__)); ++ LOG(("%s", __FUNCTION__)); + } + + public: +@@ -509,7 +509,7 @@ template + void Parent::ActorDestroy(ActorDestroyReason aWhy) { + // No more IPC from here + mDestroyed = true; +- LOG((__FUNCTION__)); ++ LOG(("%s", __FUNCTION__)); + } + + template +diff --git a/dom/media/systemservices/VideoEngine.cpp b/dom/media/systemservices/VideoEngine.cpp +index b7ce5ce..08fd6c4 100644 +--- a/dom/media/systemservices/VideoEngine.cpp ++++ b/dom/media/systemservices/VideoEngine.cpp +@@ -28,7 +28,7 @@ mozilla::LazyLogModule gVideoEngineLog("VideoEngine"); + int VideoEngine::sId = 0; + #if defined(ANDROID) + int VideoEngine::SetAndroidObjects() { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + + JavaVM* const javaVM = mozilla::jni::GetVM(); + if (!javaVM || webrtc::SetCaptureAndroidVM(javaVM) != 0) { +@@ -47,7 +47,7 @@ int VideoEngine::SetAndroidObjects() { + + void VideoEngine::CreateVideoCapture(int32_t& id, + const char* deviceUniqueIdUTF8) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + MOZ_ASSERT(deviceUniqueIdUTF8); + + id = GenerateId(); +@@ -140,7 +140,7 @@ int VideoEngine::ReleaseVideoCapture(const int32_t id) { + + std::shared_ptr + VideoEngine::GetOrCreateVideoCaptureDeviceInfo() { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + int64_t currentTime = 0; + + const char* capDevTypeName = +@@ -215,7 +215,7 @@ const UniquePtr& VideoEngine::GetConfiguration() { + + already_AddRefed VideoEngine::Create( + UniquePtr&& aConfig) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + LOG(("Creating new VideoEngine with CaptureDeviceType %s", + aConfig->Get().TypeName())); + return do_AddRef(new VideoEngine(std::move(aConfig))); +@@ -263,7 +263,7 @@ VideoEngine::VideoEngine(UniquePtr&& aConfig) + mCaptureDevInfo(aConfig->Get()), + mDeviceInfo(nullptr), + mConfig(std::move(aConfig)) { +- LOG((__PRETTY_FUNCTION__)); ++ LOG(("%s", __PRETTY_FUNCTION__)); + } + + } // namespace camera +diff --git a/dom/media/webrtc/MediaEngineRemoteVideoSource.cpp b/dom/media/webrtc/MediaEngineRemoteVideoSource.cpp +index 3589146..17aa118 100644 +--- a/dom/media/webrtc/MediaEngineRemoteVideoSource.cpp ++++ b/dom/media/webrtc/MediaEngineRemoteVideoSource.cpp +@@ -68,7 +68,7 @@ dom::MediaSourceEnum MediaEngineRemoteVideoSource::GetMediaSource() const { + } + + void MediaEngineRemoteVideoSource::Init() { +- LOG(__PRETTY_FUNCTION__); ++ LOG("%s", __PRETTY_FUNCTION__); + AssertIsOnOwningThread(); + + char deviceName[kMaxDeviceNameLength]; +@@ -89,7 +89,7 @@ void MediaEngineRemoteVideoSource::Init() { + } + + void MediaEngineRemoteVideoSource::Shutdown() { +- LOG(__PRETTY_FUNCTION__); ++ LOG("%s", __PRETTY_FUNCTION__); + AssertIsOnOwningThread(); + + if (!mInitDone) { +@@ -109,7 +109,7 @@ void MediaEngineRemoteVideoSource::Shutdown() { + } + + void MediaEngineRemoteVideoSource::SetName(nsString aName) { +- LOG(__PRETTY_FUNCTION__); ++ LOG("%s", __PRETTY_FUNCTION__); + AssertIsOnOwningThread(); + + mDeviceName = std::move(aName); +@@ -193,7 +193,7 @@ nsresult MediaEngineRemoteVideoSource::Allocate( + const nsString& aDeviceId, + const mozilla::ipc::PrincipalInfo& aPrincipalInfo, + const char** aOutBadConstraint) { +- LOG(__PRETTY_FUNCTION__); ++ LOG("%s", __PRETTY_FUNCTION__); + AssertIsOnOwningThread(); + + MOZ_ASSERT(mState == kReleased); +@@ -231,7 +231,7 @@ nsresult MediaEngineRemoteVideoSource::Allocate( + } + + nsresult MediaEngineRemoteVideoSource::Deallocate() { +- LOG(__PRETTY_FUNCTION__); ++ LOG("%s", __PRETTY_FUNCTION__); + AssertIsOnOwningThread(); + + MOZ_ASSERT(mState == kStopped || mState == kAllocated); +@@ -267,7 +267,7 @@ nsresult MediaEngineRemoteVideoSource::Deallocate() { + void MediaEngineRemoteVideoSource::SetTrack( + const RefPtr& aStream, TrackID aTrackID, + const PrincipalHandle& aPrincipal) { +- LOG(__PRETTY_FUNCTION__); ++ LOG("%s", __PRETTY_FUNCTION__); + AssertIsOnOwningThread(); + + MOZ_ASSERT(mState == kAllocated); +@@ -292,7 +292,7 @@ void MediaEngineRemoteVideoSource::SetTrack( + } + + nsresult MediaEngineRemoteVideoSource::Start() { +- LOG(__PRETTY_FUNCTION__); ++ LOG("%s", __PRETTY_FUNCTION__); + AssertIsOnOwningThread(); + + MOZ_ASSERT(mState == kAllocated || mState == kStopped); +@@ -345,7 +345,7 @@ nsresult MediaEngineRemoteVideoSource::Start() { + } + + nsresult MediaEngineRemoteVideoSource::FocusOnSelectedSource() { +- LOG(__PRETTY_FUNCTION__); ++ LOG("%s", __PRETTY_FUNCTION__); + AssertIsOnOwningThread(); + + int result; +@@ -355,7 +355,7 @@ nsresult MediaEngineRemoteVideoSource::FocusOnSelectedSource() { + } + + nsresult MediaEngineRemoteVideoSource::Stop() { +- LOG(__PRETTY_FUNCTION__); ++ LOG("%s", __PRETTY_FUNCTION__); + AssertIsOnOwningThread(); + + if (mState == kStopped || mState == kAllocated) { +@@ -381,7 +381,7 @@ nsresult MediaEngineRemoteVideoSource::Stop() { + nsresult MediaEngineRemoteVideoSource::Reconfigure( + const MediaTrackConstraints& aConstraints, const MediaEnginePrefs& aPrefs, + const nsString& aDeviceId, const char** aOutBadConstraint) { +- LOG(__PRETTY_FUNCTION__); ++ LOG("%s", __PRETTY_FUNCTION__); + AssertIsOnOwningThread(); + + MOZ_ASSERT(mInitDone); +@@ -762,7 +762,7 @@ bool MediaEngineRemoteVideoSource::ChooseCapability( + const NormalizedConstraints& aConstraints, const MediaEnginePrefs& aPrefs, + const nsString& aDeviceId, webrtc::CaptureCapability& aCapability, + const DistanceCalculation aCalculate) { +- LOG(__PRETTY_FUNCTION__); ++ LOG("%s", __PRETTY_FUNCTION__); + AssertIsOnOwningThread(); + + if (MOZ_LOG_TEST(gMediaManagerLog, LogLevel::Debug)) { +@@ -928,7 +928,7 @@ void MediaEngineRemoteVideoSource::GetSettings( + } + + void MediaEngineRemoteVideoSource::Refresh(int aIndex) { +- LOG(__PRETTY_FUNCTION__); ++ LOG("%s", __PRETTY_FUNCTION__); + AssertIsOnOwningThread(); + + // NOTE: mCaptureIndex might have changed when allocated! diff --git a/patches/fixes/Bug-1556197-amend-Bug-1544631-for-fixing-mips32.patch b/patches/fixes/Bug-1556197-amend-Bug-1544631-for-fixing-mips32.patch new file mode 100644 index 0000000000..666cd10392 --- /dev/null +++ b/patches/fixes/Bug-1556197-amend-Bug-1544631-for-fixing-mips32.patch @@ -0,0 +1,39 @@ +From: qiaopengcheng +Date: Sun, 2 Jun 2019 07:28:24 +0900 +Subject: Bug 1556197 - amend Bug-1544631 for fixing mips32. + +--- + js/src/jit/mips32/MacroAssembler-mips32-inl.h | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git a/js/src/jit/mips32/MacroAssembler-mips32-inl.h b/js/src/jit/mips32/MacroAssembler-mips32-inl.h +index 1f7f4d1..06d8773 100644 +--- a/js/src/jit/mips32/MacroAssembler-mips32-inl.h ++++ b/js/src/jit/mips32/MacroAssembler-mips32-inl.h +@@ -820,19 +820,23 @@ void MacroAssembler::branchTestSymbol(Condition cond, const ValueOperand& value, + + void MacroAssembler::branchTestBigInt(Condition cond, Register tag, + Label* label) { +- branchTestBigIntImpl(cond, tag, label); ++ MOZ_ASSERT(cond == Equal || cond == NotEqual); ++ ma_b(tag, ImmTag(JSVAL_TAG_BIGINT), label, cond); + } + + void MacroAssembler::branchTestBigInt(Condition cond, const BaseIndex& address, + Label* label) { + SecondScratchRegisterScope scratch2(*this); +- splitTag(value, scratch2); ++ computeEffectiveAddress(address, scratch2); ++ splitTag(scratch2, scratch2); + branchTestBigInt(cond, scratch2, label); + } + + void MacroAssembler::branchTestBigInt(Condition cond, const ValueOperand& value, + Label* label) { +- branchTestBigInt(cond, value.typeReg(), label); ++ SecondScratchRegisterScope scratch2(*this); ++ splitTag(value, scratch2); ++ branchTestBigInt(cond, scratch2, label); + } + + void MacroAssembler::branchTestBigIntTruthy(bool b, const ValueOperand& value, diff --git a/patches/fixes/Bug-1560340-Only-add-confvars.sh-as-a-dependency-to-confi.patch b/patches/fixes/Bug-1560340-Only-add-confvars.sh-as-a-dependency-to-confi.patch new file mode 100644 index 0000000000..1ec137d56d --- /dev/null +++ b/patches/fixes/Bug-1560340-Only-add-confvars.sh-as-a-dependency-to-confi.patch @@ -0,0 +1,42 @@ +From: Mike Hommey +Date: Thu, 20 Jun 2019 18:43:25 +0000 +Subject: Bug 1560340 - Only add confvars.sh as a dependency to config.status + when it exists. r=chmanchester + +Differential Revision: https://phabricator.services.mozilla.com/D35447 +--- + moz.configure | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) + +diff --git a/moz.configure b/moz.configure +index 2484ad5..8cbc4f2 100755 +--- a/moz.configure ++++ b/moz.configure +@@ -640,20 +640,22 @@ include('js/sub.configure', when=compile_environment & toolkit) + @depends(check_build_environment, build_project) + @imports('__sandbox__') + @imports('glob') ++@imports(_from='os.path', _import='exists') + def config_status_deps(build_env, build_project): + + topsrcdir = build_env.topsrcdir + topobjdir = build_env.topobjdir + +- if not build_env.topobjdir.endswith('js/src'): +- extra_deps = [ +- os.path.join(topsrcdir, build_project, 'confvars.sh'), +- os.path.join(topobjdir, '.mozconfig.json'), +- ] ++ if not topobjdir.endswith('js/src'): ++ extra_deps = [os.path.join(topobjdir, '.mozconfig.json')] + else: + # mozconfig changes may impact js configure. + extra_deps = [os.path.join(topobjdir[:-7], '.mozconfig.json')] + ++ confvars = os.path.join(topsrcdir, build_project, 'confvars.sh') ++ if exists(confvars): ++ extra_deps.append(confvars) ++ + return list(__sandbox__._all_paths) + extra_deps + [ + os.path.join(topsrcdir, 'CLOBBER'), + os.path.join(topsrcdir, 'configure'), diff --git a/patches/fixes/Bug-628252-os2.cc-fails-to-compile-against-GCC-4.6-m.patch b/patches/fixes/Bug-628252-os2.cc-fails-to-compile-against-GCC-4.6-m.patch new file mode 100644 index 0000000000..96dd7326be --- /dev/null +++ b/patches/fixes/Bug-628252-os2.cc-fails-to-compile-against-GCC-4.6-m.patch @@ -0,0 +1,21 @@ +From: Christopher Aillon +Date: Tue, 8 Feb 2011 14:16:37 -0500 +Subject: Bug 628252 - os2.cc fails to compile against GCC 4.6, + missing #include ; r,a=roc + +--- + gfx/ots/src/os2.cc | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/gfx/ots/src/os2.cc b/gfx/ots/src/os2.cc +index 5376a1d..c271d88 100644 +--- a/gfx/ots/src/os2.cc ++++ b/gfx/ots/src/os2.cc +@@ -3,6 +3,7 @@ + // found in the LICENSE file. + + #include ++#include + + #include "os2.h" + #include "head.h" diff --git a/patches/fixes/Load-dependent-libraries-with-their-real-path-to-avo.patch b/patches/fixes/Load-dependent-libraries-with-their-real-path-to-avo.patch new file mode 100644 index 0000000000..66391504a2 --- /dev/null +++ b/patches/fixes/Load-dependent-libraries-with-their-real-path-to-avo.patch @@ -0,0 +1,22 @@ +From: Christoph Goehre +Date: Mon, 16 Sep 2013 20:40:57 +0200 +Subject: Load-dependent-libraries-with-their-real-path-to-avo + +--- + xpcom/glue/standalone/nsXPCOMGlue.cpp | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/xpcom/glue/standalone/nsXPCOMGlue.cpp b/xpcom/glue/standalone/nsXPCOMGlue.cpp +index ffb3d9c..77ead8d 100644 +--- a/xpcom/glue/standalone/nsXPCOMGlue.cpp ++++ b/xpcom/glue/standalone/nsXPCOMGlue.cpp +@@ -133,6 +133,9 @@ static bool ReadDependentCB(pathstr_t aDependentLib, + ReadAheadLib(aDependentLib); + } + #endif ++ char lib[MAXPATHLEN]; ++ if (realpath(aDependentLib, lib)) ++ aDependentLib = lib; + LibHandleType libHandle = GetLibHandle(aDependentLib); + if (libHandle) { + AppendDependentLib(libHandle); diff --git a/patches/fixes/Properly-launch-applications-set-in-HOME-.mailcap.patch b/patches/fixes/Properly-launch-applications-set-in-HOME-.mailcap.patch new file mode 100644 index 0000000000..bbaedb6c26 --- /dev/null +++ b/patches/fixes/Properly-launch-applications-set-in-HOME-.mailcap.patch @@ -0,0 +1,24 @@ +From: Mike Hommey +Date: Sat, 22 Nov 2008 09:35:23 +0100 +Subject: Properly launch applications set in $HOME/.mailcap + +https://bugzilla.mozilla.org/show_bug.cgi?id=444440 +--- + uriloader/exthandler/unix/nsMIMEInfoUnix.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp +index 8ab279d..cfa4d1a 100644 +--- a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp ++++ b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp +@@ -54,6 +54,10 @@ nsresult nsMIMEInfoUnix::LaunchDefaultWithFile(nsIFile* aFile) { + if (mDefaultApplication) return nsMIMEInfoImpl::LaunchDefaultWithFile(aFile); + + nsAutoCString nativePath; ++/* the name of the function has changed ++ * the old was the following: ++ nsCAutoString nativePath; ++ */ + aFile->GetNativePath(nativePath); + + nsCOMPtr giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID); diff --git a/patches/fixes/fix-function-nsMsgComposeAndSend-to-respect-Replo.patch b/patches/fixes/fix-function-nsMsgComposeAndSend-to-respect-Replo.patch new file mode 100644 index 0000000000..fc5d16440a --- /dev/null +++ b/patches/fixes/fix-function-nsMsgComposeAndSend-to-respect-Replo.patch @@ -0,0 +1,22 @@ +From: Carsten Schoenert +Date: Sat, 9 Mar 2013 20:30:54 +0100 +Subject: fix function nsMsgComposeAndSend to respect ReploToSend + +https://bugzilla.mozilla.org/show_bug.cgi?id=522450 +Closes: #565903 +--- + comm/mailnews/compose/src/nsMsgSend.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/comm/mailnews/compose/src/nsMsgSend.cpp b/comm/mailnews/compose/src/nsMsgSend.cpp +index e46529f..9e14775 100644 +--- a/comm/mailnews/compose/src/nsMsgSend.cpp ++++ b/comm/mailnews/compose/src/nsMsgSend.cpp +@@ -2328,6 +2328,7 @@ nsresult nsMsgComposeAndSend::InitCompositionFields( + (aType == nsIMsgCompType::Reply || + aType == nsIMsgCompType::ReplyAll || + aType == nsIMsgCompType::ReplyToGroup || ++ aType == nsIMsgCompType::ReplyToList || + aType == nsIMsgCompType::ReplyToSender || + aType == nsIMsgCompType::ReplyToSenderAndGroup || + aType == nsIMsgCompType::ReplyWithTemplate)) { diff --git a/patches/porting-arm/Reduce-memory-usage-while-linking-on-arm-el-hf-platforms.patch b/patches/porting-arm/Reduce-memory-usage-while-linking-on-arm-el-hf-platforms.patch new file mode 100644 index 0000000000..5366160b11 --- /dev/null +++ b/patches/porting-arm/Reduce-memory-usage-while-linking-on-arm-el-hf-platforms.patch @@ -0,0 +1,37 @@ +From: Carsten Schoenert +Date: Sun, 6 Oct 2019 08:28:58 +0200 +Subject: Reduce memory usage while linking on arm{el,hf} platforms + +The build even on armhf is failing while linking mostly due exhausted +memory usage. Reduce the memory usage on arm{el,hf} platform by telling +the linker to not hold used memory. + +Author: Olivier Tilloy +--- + build/moz.configure/toolchain.configure | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure +index d44fc08..7cfe8dd 100755 +--- a/build/moz.configure/toolchain.configure ++++ b/build/moz.configure/toolchain.configure +@@ -2108,15 +2108,16 @@ def select_linker(linker, c_compiler, developer_options, enable_gold, + set_config('LINKER_KIND', select_linker.KIND) + + +-@depends_if(select_linker, macos_sdk) +-def linker_ldflags(linker, macos_sdk): ++@depends_if(select_linker, macos_sdk, host) ++def linker_ldflags(linker, macos_sdk, host): + flags = list(linker.LINKER_FLAG or []) + if macos_sdk: + if linker.KIND == 'ld64': + flags.append('-Wl,-syslibroot,%s' % macos_sdk) + else: + flags.append('-Wl,--sysroot=%s' % macos_sdk) +- ++ elif host.cpu == 'arm': ++ flags.append('-Wl,--no-keep-memory') + return flags + + diff --git a/patches/porting-armel/Avoid-using-vmrs-vmsr-on-armel.patch b/patches/porting-armel/Avoid-using-vmrs-vmsr-on-armel.patch new file mode 100644 index 0000000000..55cde74313 --- /dev/null +++ b/patches/porting-armel/Avoid-using-vmrs-vmsr-on-armel.patch @@ -0,0 +1,21 @@ +From: Mike Hommey +Date: Tue, 22 May 2018 07:51:56 +0900 +Subject: Avoid using vmrs/vmsr on armel + +--- + dom/media/webaudio/blink/DenormalDisabler.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dom/media/webaudio/blink/DenormalDisabler.h b/dom/media/webaudio/blink/DenormalDisabler.h +index b7a3ca3..4f92d77 100644 +--- a/dom/media/webaudio/blink/DenormalDisabler.h ++++ b/dom/media/webaudio/blink/DenormalDisabler.h +@@ -44,7 +44,7 @@ namespace WebCore { + # define HAVE_DENORMAL 1 + #endif + +-#if defined(__arm__) || defined(__aarch64__) ++#if (defined(__arm__) && !defined(__SOFTFP__)) || defined(__aarch64__) + # define HAVE_DENORMAL 1 + #endif + diff --git a/patches/porting-armel/Bug-1463035-Remove-MOZ_SIGNAL_TRAMPOLINE.-r-darchons.patch b/patches/porting-armel/Bug-1463035-Remove-MOZ_SIGNAL_TRAMPOLINE.-r-darchons.patch new file mode 100644 index 0000000000..5883965523 --- /dev/null +++ b/patches/porting-armel/Bug-1463035-Remove-MOZ_SIGNAL_TRAMPOLINE.-r-darchons.patch @@ -0,0 +1,96 @@ +From: Mike Hommey +Date: Mon, 21 May 2018 12:04:22 +0900 +Subject: Bug 1463035 - Remove MOZ_SIGNAL_TRAMPOLINE. r?darchons + +For some reason, GNU as is not happy with the assembly generated after +bug 1238661 anymore on Debian armel. + +OTOH, as mentioned in bug 1238661 comment 4, we actually don't need this +workaround anymore, so let's just kill it. +--- + mfbt/LinuxSignal.h | 38 -------------------------- + mfbt/moz.build | 4 --- + tools/profiler/core/platform-linux-android.cpp | 3 +- + 3 files changed, 1 insertion(+), 44 deletions(-) + delete mode 100644 mfbt/LinuxSignal.h + +diff --git a/mfbt/LinuxSignal.h b/mfbt/LinuxSignal.h +deleted file mode 100644 +index cdebb77..0000000 +--- a/mfbt/LinuxSignal.h ++++ /dev/null +@@ -1,38 +0,0 @@ +-/* This Source Code Form is subject to the terms of the Mozilla Public +- * License, v. 2.0. If a copy of the MPL was not distributed with this +- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +- +-#ifndef mozilla_LinuxSignal_h +-#define mozilla_LinuxSignal_h +- +-namespace mozilla { +- +-#if defined(__arm__) && defined(__ANDROID__) +- +-// Some (old) Linux kernels on ARM have a bug where a signal handler +-// can be called without clearing the IT bits in CPSR first. The result +-// is that the first few instructions of the handler could be skipped, +-// ultimately resulting in crashes. To workaround this bug, the handler +-// on ARM is a trampoline that starts with enough NOP instructions, so +-// that even if the IT bits are not cleared, only the NOP instructions +-// will be skipped over. +- +-template +-__attribute__((naked)) void SignalTrampoline(int aSignal, siginfo_t* aInfo, +- void* aContext) { +- asm volatile("nop; nop; nop; nop" : : : "memory"); +- +- asm volatile("b %0" : : "X"(H) : "memory"); +-} +- +-# define MOZ_SIGNAL_TRAMPOLINE(h) (mozilla::SignalTrampoline) +- +-#else // __arm__ +- +-# define MOZ_SIGNAL_TRAMPOLINE(h) (h) +- +-#endif // __arm__ +- +-} // namespace mozilla +- +-#endif // mozilla_LinuxSignal_h +diff --git a/mfbt/moz.build b/mfbt/moz.build +index 3d123a3..ab4c75c 100644 +--- a/mfbt/moz.build ++++ b/mfbt/moz.build +@@ -129,10 +129,6 @@ if CONFIG['OS_ARCH'] == 'WINNT': + EXPORTS.mozilla += [ + 'WindowsVersion.h', + ] +-elif CONFIG['OS_ARCH'] == 'Linux': +- EXPORTS.mozilla += [ +- 'LinuxSignal.h', +- ] + + UNIFIED_SOURCES += [ + 'Assertions.cpp', +diff --git a/tools/profiler/core/platform-linux-android.cpp b/tools/profiler/core/platform-linux-android.cpp +index 07857f2..e73790d 100644 +--- a/tools/profiler/core/platform-linux-android.cpp ++++ b/tools/profiler/core/platform-linux-android.cpp +@@ -60,7 +60,6 @@ + #include + + #include "prenv.h" +-#include "mozilla/LinuxSignal.h" + #include "mozilla/PodOperations.h" + #include "mozilla/DebugOnly.h" + +@@ -262,7 +261,7 @@ Sampler::Sampler(PSLockRef aLock) + + // Request profiling signals. + struct sigaction sa; +- sa.sa_sigaction = MOZ_SIGNAL_TRAMPOLINE(SigprofHandler); ++ sa.sa_sigaction = SigprofHandler; + sigemptyset(&sa.sa_mask); + sa.sa_flags = SA_RESTART | SA_SIGINFO; + if (sigaction(SIGPROF, &sa, &mOldSigprofHandler) != 0) { diff --git a/patches/porting-armhf/Bug-1526653-Include-struct-definitions-for-user_vfp-and-u.patch b/patches/porting-armhf/Bug-1526653-Include-struct-definitions-for-user_vfp-and-u.patch new file mode 100644 index 0000000000..1da0e85fda --- /dev/null +++ b/patches/porting-armhf/Bug-1526653-Include-struct-definitions-for-user_vfp-and-u.patch @@ -0,0 +1,31 @@ +From: Mike Hommey +Date: Sat, 1 Jun 2019 09:06:01 +0900 +Subject: Bug 1526653 - Include struct definitions for user_vfp and + user_vfp_exc. + +--- + js/src/wasm/WasmSignalHandlers.cpp | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp +index cfb2970..b56e0f6 100644 +--- a/js/src/wasm/WasmSignalHandlers.cpp ++++ b/js/src/wasm/WasmSignalHandlers.cpp +@@ -248,7 +248,16 @@ using mozilla::DebugOnly; + #endif + + #ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS +-# include ++struct user_vfp { ++ unsigned long long fpregs[32]; ++ unsigned long fpscr; ++}; ++ ++struct user_vfp_exc { ++ unsigned long fpexc; ++ unsigned long fpinst; ++ unsigned long fpinst2; ++}; + #endif + + #if defined(ANDROID) diff --git a/patches/porting-armhf/Don-t-use-LLVM-internal-assembler-on-armhf.patch b/patches/porting-armhf/Don-t-use-LLVM-internal-assembler-on-armhf.patch new file mode 100644 index 0000000000..0c17ee37de --- /dev/null +++ b/patches/porting-armhf/Don-t-use-LLVM-internal-assembler-on-armhf.patch @@ -0,0 +1,43 @@ +From: Carsten Schoenert +Date: Sat, 5 Oct 2019 19:23:45 +0200 +Subject: Don't use LLVM internal assembler on armhf + +Avoid the usage of LLVM own assembler implementation on specific parts +as the assembler isn't build with NEON support. + +Author: Olivier Tilloy +Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1561819 +--- + gfx/ycbcr/moz.build | 3 +++ + media/libjpeg/moz.build | 4 ++++ + 2 files changed, 7 insertions(+) + +diff --git a/gfx/ycbcr/moz.build b/gfx/ycbcr/moz.build +index c643fba..59a7eab 100644 +--- a/gfx/ycbcr/moz.build ++++ b/gfx/ycbcr/moz.build +@@ -60,6 +60,9 @@ if CONFIG['CPU_ARCH'] == 'arm' and CONFIG['HAVE_ARM_NEON']: + SOURCES += [ + 'yuv_convert_arm.cpp', + ] ++ # The integrated assembler fails to build yuv_convert_arm.cpp because it doesn't have NEON ++ if CONFIG['CC_TYPE'] == 'clang': ++ CXXFLAGS += ['-fno-integrated-as'] + + LOCAL_INCLUDES += ['/media/libyuv/libyuv/include'] + +diff --git a/media/libjpeg/moz.build b/media/libjpeg/moz.build +index f3e4bf4..65d02c9 100644 +--- a/media/libjpeg/moz.build ++++ b/media/libjpeg/moz.build +@@ -192,6 +192,10 @@ if CONFIG['CPU_ARCH'] == 'x86_64': + ASFLAGS += ['-I%s/media/libjpeg/simd/nasm/' % TOPSRCDIR] + ASFLAGS += ['-I%s/media/libjpeg/simd/x86_64/' % TOPSRCDIR] + ++# The integrated assembler fails to build simd/arm/jsimd_neon.S because it doesn't have NEON ++if CONFIG['CC_TYPE'] == 'clang' and CONFIG['CPU_ARCH'] == 'arm': ++ ASFLAGS += ['-fno-integrated-as'] ++ + # We allow warnings for third-party code that can be updated from upstream. + AllowCompilerWarnings() + diff --git a/patches/porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-hurd.patch b/patches/porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-hurd.patch new file mode 100644 index 0000000000..d8330f9736 --- /dev/null +++ b/patches/porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-hurd.patch @@ -0,0 +1,22 @@ +From: Christoph Goehre +Date: Sat, 6 Aug 2011 17:55:14 +0200 +Subject: Allow ipc code to build on GNU/hurd + +Thanks: Pino Toscano +--- + ipc/chromium/src/build/build_config.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ipc/chromium/src/build/build_config.h b/ipc/chromium/src/build/build_config.h +index caa2742..4e0711d 100644 +--- a/ipc/chromium/src/build/build_config.h ++++ b/ipc/chromium/src/build/build_config.h +@@ -22,7 +22,7 @@ + # define OS_LINUX 1 + #elif defined(__APPLE__) + # define OS_MACOSX 1 +-#elif defined(__linux__) || defined(__GLIBC__) ++#elif defined(__linux__) || defined(__GLIBC__) || defined(__GNU__) + # define OS_LINUX 1 + #elif defined(__DragonFly__) + # define OS_DRAGONFLY 1 diff --git a/patches/porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-kfreebsd.patch b/patches/porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-kfreebsd.patch new file mode 100644 index 0000000000..99fa5e6cc6 --- /dev/null +++ b/patches/porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-kfreebsd.patch @@ -0,0 +1,38 @@ +From: Mike Hommey +Date: Thu, 30 Jun 2011 18:29:22 +0200 +Subject: Allow ipc code to build on GNU/kfreebsd + +--- + ipc/chromium/src/base/platform_thread_posix.cc | 5 +++++ + ipc/chromium/src/build/build_config.h | 2 +- + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/ipc/chromium/src/base/platform_thread_posix.cc b/ipc/chromium/src/base/platform_thread_posix.cc +index 7c866b8..e0d6726 100644 +--- a/ipc/chromium/src/base/platform_thread_posix.cc ++++ b/ipc/chromium/src/base/platform_thread_posix.cc +@@ -51,6 +51,11 @@ PlatformThreadId PlatformThread::CurrentId() { + return port; + #elif defined(OS_LINUX) + return syscall(__NR_gettid); ++#ifdef __NR_gettid ++ return syscall(__NR_gettid); ++#else ++ return getpid(); ++#endif + #elif defined(OS_OPENBSD) || defined(OS_SOLARIS) || defined(__GLIBC__) + return (intptr_t)(pthread_self()); + #elif defined(OS_NETBSD) +diff --git a/ipc/chromium/src/build/build_config.h b/ipc/chromium/src/build/build_config.h +index f573190..caa2742 100644 +--- a/ipc/chromium/src/build/build_config.h ++++ b/ipc/chromium/src/build/build_config.h +@@ -22,7 +22,7 @@ + # define OS_LINUX 1 + #elif defined(__APPLE__) + # define OS_MACOSX 1 +-#elif defined(__linux__) ++#elif defined(__linux__) || defined(__GLIBC__) + # define OS_LINUX 1 + #elif defined(__DragonFly__) + # define OS_DRAGONFLY 1 diff --git a/patches/porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch b/patches/porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch new file mode 100644 index 0000000000..51b36a46bf --- /dev/null +++ b/patches/porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch @@ -0,0 +1,224 @@ +From: Carsten Schoenert +Date: Sat, 29 Mar 2014 20:58:55 +0100 +Subject: FTBFS hurd: fixing unsupported platform Hurd + +On the Hurd platform the build failed in +js/src/jit/AsmJSSignalHandlers.cpp:131 because of unsupported +mode for reading / writing thead state with following message. + + # error "Don't know how to read/write to the thread state via the mcontext_t." + +The original patch comes from Richard Brown +https://lists.alioth.debian.org/pipermail/pkg-mozilla-maintainers/2014-March/015565.html + +After release of Thunderbird 44 there are additional changes made as the +various configuration files where split into more files. +--- + dom/plugins/ipc/PluginModuleChild.cpp | 6 +++--- + dom/plugins/ipc/PluginModuleChild.h | 2 +- + ipc/chromium/chromium-config.mozbuild | 5 +++++ + ipc/chromium/moz.build | 2 +- + ipc/chromium/src/base/message_loop.cc | 4 ++-- + ipc/chromium/src/base/process_util_posix.cc | 2 +- + ipc/chromium/src/build/build_config.h | 3 ++- + ipc/chromium/src/third_party/libeventcommon.mozbuild | 5 +++++ + ipc/glue/GeckoChildProcessHost.cpp | 6 +++--- + js/src/wasm/WasmSignalHandlers.cpp | 2 +- + 10 files changed, 24 insertions(+), 13 deletions(-) + +diff --git a/dom/plugins/ipc/PluginModuleChild.cpp b/dom/plugins/ipc/PluginModuleChild.cpp +index 28d0e53..f1662e4 100644 +--- a/dom/plugins/ipc/PluginModuleChild.cpp ++++ b/dom/plugins/ipc/PluginModuleChild.cpp +@@ -283,7 +283,7 @@ bool PluginModuleChild::InitForChrome(const std::string& aPluginFilename, + + GetIPCChannel()->SetAbortOnError(true); + +-#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) ++#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) || defined(OS_HURD) + mShutdownFunc = + (NP_PLUGINSHUTDOWN)PR_FindFunctionSymbol(mLibrary, "NP_Shutdown"); + +@@ -1528,7 +1528,7 @@ mozilla::ipc::IPCResult PluginModuleChild::AnswerNP_GetEntryPoints( + AssertPluginThread(); + MOZ_ASSERT(mIsChrome); + +-#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) ++#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) || defined(OS_HURD) + return IPC_OK(); + #elif defined(OS_WIN) || defined(OS_MACOSX) + *_retval = mGetEntryPointsFunc(&mFunctions); +@@ -1563,7 +1563,7 @@ NPError PluginModuleChild::DoNP_Initialize(const PluginSettings& aSettings) { + #endif + + NPError result; +-#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) ++#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) || defined(OS_HURD) + result = mInitializeFunc(&sBrowserFuncs, &mFunctions); + #elif defined(OS_WIN) || defined(OS_MACOSX) + result = mInitializeFunc(&sBrowserFuncs); +diff --git a/dom/plugins/ipc/PluginModuleChild.h b/dom/plugins/ipc/PluginModuleChild.h +index e770c97..1070e1a 100644 +--- a/dom/plugins/ipc/PluginModuleChild.h ++++ b/dom/plugins/ipc/PluginModuleChild.h +@@ -228,7 +228,7 @@ class PluginModuleChild : public PPluginModuleChild { + + // we get this from the plugin + NP_PLUGINSHUTDOWN mShutdownFunc; +-#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) ++#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) || defined(OS_HURD) + NP_PLUGINUNIXINIT mInitializeFunc; + #elif defined(OS_WIN) || defined(OS_MACOSX) + NP_PLUGININIT mInitializeFunc; +diff --git a/ipc/chromium/chromium-config.mozbuild b/ipc/chromium/chromium-config.mozbuild +index 1dd914f..30ee42f 100644 +--- a/ipc/chromium/chromium-config.mozbuild ++++ b/ipc/chromium/chromium-config.mozbuild +@@ -67,6 +67,11 @@ else: + 'OS_BSD': 1, + }) + ++ elif CONFIG['OS_ARCH'] == 'GNU': ++ DEFINES.update({ ++ 'OS_HURD': 1, ++ }) ++ + else: + DEFINES['OS_LINUX'] = 1 + +diff --git a/ipc/chromium/moz.build b/ipc/chromium/moz.build +index 3766f25..5710d10 100644 +--- a/ipc/chromium/moz.build ++++ b/ipc/chromium/moz.build +@@ -114,7 +114,7 @@ if os_bsd or os_linux: + 'src/base/message_pump_glib.cc', + ] + +-if os_solaris: ++if os_solaris or os_hurd: + SOURCES += [ + 'src/base/process_util_linux.cc', + 'src/base/time_posix.cc', +diff --git a/ipc/chromium/src/base/message_loop.cc b/ipc/chromium/src/base/message_loop.cc +index 4741bf0..1eb555f 100644 +--- a/ipc/chromium/src/base/message_loop.cc ++++ b/ipc/chromium/src/base/message_loop.cc +@@ -21,7 +21,7 @@ + #if defined(OS_POSIX) + # include "base/message_pump_libevent.h" + #endif +-#if defined(OS_LINUX) || defined(OS_BSD) ++#if defined(OS_LINUX) || defined(OS_BSD)|| defined(OS_HURD) + # if defined(MOZ_WIDGET_GTK) + # include "base/message_pump_glib.h" + # endif +@@ -235,7 +235,7 @@ MessageLoop::MessageLoop(Type type, nsIEventTarget* aEventTarget) + if (type_ == TYPE_UI) { + # if defined(OS_MACOSX) + pump_ = base::MessagePumpMac::Create(); +-# elif defined(OS_LINUX) || defined(OS_BSD) ++# elif defined(OS_LINUX) || defined(OS_BSD) || defined(OS_HURD) + pump_ = new base::MessagePumpForUI(); + # endif // OS_LINUX + } else if (type_ == TYPE_IO) { +diff --git a/ipc/chromium/src/base/process_util_posix.cc b/ipc/chromium/src/base/process_util_posix.cc +index 719178e..bed6f31 100644 +--- a/ipc/chromium/src/base/process_util_posix.cc ++++ b/ipc/chromium/src/base/process_util_posix.cc +@@ -120,7 +120,7 @@ void CloseSuperfluousFds(void* aCtx, bool (*aShouldPreserve)(void*, int)) { + #if defined(ANDROID) + static const rlim_t kSystemDefaultMaxFds = 1024; + static const char kFDDir[] = "/proc/self/fd"; +-#elif defined(OS_LINUX) || defined(OS_SOLARIS) ++#elif defined(OS_LINUX) || defined(OS_SOLARIS) || defined(OS_HURD) + static const rlim_t kSystemDefaultMaxFds = 8192; + static const char kFDDir[] = "/proc/self/fd"; + #elif defined(OS_MACOSX) +diff --git a/ipc/chromium/src/build/build_config.h b/ipc/chromium/src/build/build_config.h +index 4e0711d..72105fc 100644 +--- a/ipc/chromium/src/build/build_config.h ++++ b/ipc/chromium/src/build/build_config.h +@@ -24,6 +24,7 @@ + # define OS_MACOSX 1 + #elif defined(__linux__) || defined(__GLIBC__) || defined(__GNU__) + # define OS_LINUX 1 ++# define OS_HURD 1 + #elif defined(__DragonFly__) + # define OS_DRAGONFLY 1 + #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) +@@ -50,7 +51,7 @@ + // For access to standard POSIX features, use OS_POSIX instead of a more + // specific macro. + #if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) || \ +- defined(OS_SOLARIS) ++ defined(OS_SOLARIS) || defined(OS_HURD) + # define OS_POSIX 1 + #endif + +diff --git a/ipc/chromium/src/third_party/libeventcommon.mozbuild b/ipc/chromium/src/third_party/libeventcommon.mozbuild +index 5037ec7..c858d9c 100644 +--- a/ipc/chromium/src/third_party/libeventcommon.mozbuild ++++ b/ipc/chromium/src/third_party/libeventcommon.mozbuild +@@ -8,6 +8,7 @@ os_win = 0 + os_posix = 0 + os_macosx = 0 + os_bsd = 0 ++os_hurd = 0 + os_linux = 0 + os_solaris = 0 + +@@ -25,6 +26,10 @@ else: + elif CONFIG['OS_ARCH'] == 'SunOS': + os_solaris = 1 + libevent_include_suffix = 'solaris' ++ # attempt to get GNU hurd into the build again, further modification probably needed ++ elif CONFIG['OS_ARCH'] == 'GNU': ++ os_hurd = 1 ++ libevent_include_suffix = 'gnu' + else: + os_linux = 1 + if CONFIG['OS_TARGET'] == 'Android': +diff --git a/ipc/glue/GeckoChildProcessHost.cpp b/ipc/glue/GeckoChildProcessHost.cpp +index d87cb0a..9cc001e 100644 +--- a/ipc/glue/GeckoChildProcessHost.cpp ++++ b/ipc/glue/GeckoChildProcessHost.cpp +@@ -789,7 +789,7 @@ bool GeckoChildProcessHost::PerformAsyncLaunch( + // and passing wstrings from one config to the other is unsafe. So + // we split the logic here. + +-# if defined(OS_POSIX) ++# if defined(OS_POSIX) || defined(OS_HURD) + # if defined(MOZ_WIDGET_GTK) + if (mProcessType == GeckoProcessType_Content) { + // disable IM module to avoid sandbox violation +@@ -810,7 +810,7 @@ bool GeckoChildProcessHost::PerformAsyncLaunch( + MOZ_ASSERT(gGREBinPath); + nsCString path; + NS_CopyUnicodeToNative(nsDependentString(gGREBinPath), path); +-# if defined(OS_LINUX) || defined(OS_BSD) ++# if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_HURD) + const char* ld_library_path = PR_GetEnv("LD_LIBRARY_PATH"); + nsCString new_ld_lib_path(path.get()); + +@@ -897,7 +897,7 @@ bool GeckoChildProcessHost::PerformAsyncLaunch( + childArgv.push_back(pidstring); + + if (!CrashReporter::IsDummy()) { +-# if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) ++# if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) || defined(OS_HURD) + int childCrashFd, childCrashRemapFd; + if (!CrashReporter::CreateNotificationPipeForChild(&childCrashFd, + &childCrashRemapFd)) { +diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp +index 636537f..cfb2970 100644 +--- a/js/src/wasm/WasmSignalHandlers.cpp ++++ b/js/src/wasm/WasmSignalHandlers.cpp +@@ -108,7 +108,7 @@ using mozilla::DebugOnly; + # define R01_sig(p) ((p)->sc_frame.fixreg[1]) + # define R32_sig(p) ((p)->sc_frame.srr0) + # endif +-#elif defined(__linux__) || defined(__sun) ++#elif defined(__linux__) || defined(__sun) || defined(__GNU__) + # if defined(__linux__) + # define EIP_sig(p) ((p)->uc_mcontext.gregs[REG_EIP]) + # define EBP_sig(p) ((p)->uc_mcontext.gregs[REG_EBP]) diff --git a/patches/porting-kfreebsd-hurd/LDAP-support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch b/patches/porting-kfreebsd-hurd/LDAP-support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch new file mode 100644 index 0000000000..7748f79efc --- /dev/null +++ b/patches/porting-kfreebsd-hurd/LDAP-support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch @@ -0,0 +1,167 @@ +From: Mike Hommey +Date: Tue, 11 Mar 2008 08:29:25 +0100 +Subject: LDAP: support building on GNU/kFreeBSD and GNU/Hurd + +https://bugzilla.mozilla.org/show_bug.cgi?id=356011 + +Squashed kFreeBSD/Hurd related fixes: +- Fix FTBFS on Hurd-i386 +- Build fixes for GNU/kFreeBSD in directory/ +- Missing bits for Hurd support +--- + comm/ldap/c-sdk/include/portable.h | 25 ++++++++++++++++------ + comm/ldap/c-sdk/libraries/libldap/compat.c | 2 +- + comm/ldap/c-sdk/libraries/libprldap/ldappr-error.c | 2 +- + nsprpub/config/nsinstall.c | 25 ++++++++++++++++++++++ + 4 files changed, 45 insertions(+), 9 deletions(-) + +diff --git a/comm/ldap/c-sdk/include/portable.h b/comm/ldap/c-sdk/include/portable.h +index d70aa6e..0f5e3c4 100644 +--- a/comm/ldap/c-sdk/include/portable.h ++++ b/comm/ldap/c-sdk/include/portable.h +@@ -124,7 +124,8 @@ + */ + #ifndef NEED_BSDREGEX + # if (defined(SYSV) || defined(NETBSD) || defined(FREEBSD) || \ +- defined(__OpenBSD__) || defined(linux) || defined(DARWIN)) && \ ++ defined(__OpenBSD__) || defined(linux) || defined(DARWIN) || \ ++ defined(__GNU__) || defined(__GLIBC__)) && \ + !defined(sgi) + # define NEED_BSDREGEX + # endif +@@ -152,9 +153,14 @@ + /* + * Is snprintf() part of the standard C runtime library? + */ ++#if !defined(HAVE_SNPRINTF) ++#if defined(SOLARIS) || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) || defined(HPUX) || defined(AIX) ++#define HAVE_SNPRINTF ++#endif + #if defined(_WINDOWS) + # define snprintf _snprintf + #endif ++#endif + + /* + * Async IO. Use a non blocking implementation of connect() and +@@ -169,7 +175,7 @@ + */ + #if !defined(WINSOCK) && !defined(_WINDOWS) && !defined(macintosh) && \ + !defined(XP_OS2) +-# if defined(hpux) || defined(LINUX) || defined(SUNOS4) || defined(XP_BEOS) ++# if defined(hpux) || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) || defined(SUNOS4) || defined(XP_BEOS) + # include + # else + # include +@@ -243,7 +249,7 @@ + # define HAVE_TIME_R + #endif + +-#if defined(SNI) || defined(LINUX1_2) ++#if defined(SNI) || defined(LINUX1_2) || defined(__GNU__) || defined(__GLIBC__) + int strcasecmp(const char *, const char *); + # ifdef SNI + int strncasecmp(const char *, const char *, int); +@@ -270,7 +276,12 @@ int strncasecmp(const char *, const char *, size_t); + # define NSLDAPI_NETDB_BUF_SIZE 1024 + # endif + +-# if defined(sgi) || defined(HPUX9) || defined(SCOOS) || defined(UNIXWARE) || \ ++#if defined(__GLIBC__) && __GLIBC__ >= 2 ++typedef char GETHOSTBYNAME_buf_t [NSLDAPI_NETDB_BUF_SIZE]; ++# define GETHOSTBYNAME_BUF_T GETHOSTBYNAME_buf_t ++# define GETHOSTBYNAME( n, r, b, l, rp, e ) gethostbyname_r( n, r, b, l, rp, e ) ++# define GETHOSTBYNAME_R_RETURNS_INT ++#elif defined(sgi) || defined(HPUX9) || defined(SCOOS) || defined(UNIXWARE) || \ + defined(SUNOS4) || defined(SNI) || defined(BSDI) || defined(NCR) || \ + defined(OSF1) || defined(NEC) || defined(VMS) || \ + (defined(HPUX10) && !defined(_REENTRANT)) || defined(HPUX11) || \ +@@ -292,7 +303,7 @@ typedef char GETHOSTBYNAME_buf_t[NSLDAPI_NETDB_BUF_SIZE]; + # define GETHOSTBYNAME_BUF_T struct hostent_data + # define GETHOSTBYNAME(n, r, b, l, e) \ + nsldapi_compat_gethostbyname_r(n, r, (char *)&b, l, e) +-# elif defined(LINUX) || defined(DRAGONFLY) ++# elif defined(LINUX) || defined(DRAGONFLY) || defined(__GNU__) || defined(__GLIBC__) + typedef char GETHOSTBYNAME_buf_t[NSLDAPI_NETDB_BUF_SIZE]; + # define GETHOSTBYNAME_BUF_T GETHOSTBYNAME_buf_t + # define GETHOSTBYNAME(n, r, b, l, rp, e) gethostbyname_r(n, r, b, l, rp, e) +@@ -314,7 +325,7 @@ typedef char GETHOSTBYNAME_buf_t[NSLDAPI_NETDB_BUF_SIZE]; + defined(OSF1V4) || defined(AIX) || defined(UnixWare) || defined(hpux) || \ + defined(HPUX11) || defined(NETBSD) || defined(IRIX6) || \ + defined(FREEBSD) || defined(VMS) || defined(NTO) || defined(OPENBSD) || \ +- defined(DRAGONFLY) ++ defined(DRAGONFLY || defined(__GLIBC__)) + # define NSLDAPI_CTIME(c, b, l) ctime_r(c, b) + # elif defined(OSF1V3) + # define NSLDAPI_CTIME(c, b, l) (ctime_r(c, b, l) ? NULL : b) +@@ -450,7 +461,7 @@ int select(int, fd_set *, fd_set *, fd_set *, struct timeval *); + # define NSLDAPI_FOPEN(filename, mode) fopen(filename, mode) + #endif + +-#if defined(LINUX) || defined(AIX) || defined(HPUX) || defined(_WINDOWS) ++#if defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) || defined(AIX) || defined(HPUX) || defined(_WINDOWS) + size_t nsldapi_compat_strlcpy(char *dst, const char *src, size_t len); + # define STRLCPY nsldapi_compat_strlcpy + #else +diff --git a/comm/ldap/c-sdk/libraries/libldap/compat.c b/comm/ldap/c-sdk/libraries/libldap/compat.c +index 13c9a7b..1aa1afd 100644 +--- a/comm/ldap/c-sdk/libraries/libldap/compat.c ++++ b/comm/ldap/c-sdk/libraries/libldap/compat.c +@@ -81,7 +81,7 @@ char *nsldapi_compat_ctime_r(const time_t *clock, char *buf, int buflen) { + } + #endif /* HPUX10 && _REENTRANT && !HPUX11 */ + +-#if defined(LINUX) || defined(AIX) || defined(HPUX) || defined(_WINDOWS) ++#if defined(LINUX) || defined(AIX) || defined(HPUX) || defined(_WINDOWS) || defined(__GNU__) || defined(__GLIBC__) + /* + * Copies src to the dstsize buffer at dst. The copy will never + * overflow the destination buffer and the buffer will always be null +diff --git a/comm/ldap/c-sdk/libraries/libprldap/ldappr-error.c b/comm/ldap/c-sdk/libraries/libprldap/ldappr-error.c +index 4554548..52ad562 100644 +--- a/comm/ldap/c-sdk/libraries/libprldap/ldappr-error.c ++++ b/comm/ldap/c-sdk/libraries/libprldap/ldappr-error.c +@@ -218,7 +218,7 @@ struct prldap_errormap_entry { + + #if defined(__hpux) || defined(_AIX) || defined(OSF1) || defined(DARWIN) || \ + defined(BEOS) || defined(FREEBSD) || defined(BSDI) || defined(VMS) || \ +- defined(OPENBSD) || defined(NETBSD) ++ defined(OPENBSD) || defined(NETBSD) || defined(__FreeBSD_kernel__) + # define EDEADLOCK -1 + #endif + +diff --git a/nsprpub/config/nsinstall.c b/nsprpub/config/nsinstall.c +index f1d2cff..1b857d9 100644 +--- a/nsprpub/config/nsinstall.c ++++ b/nsprpub/config/nsinstall.c +@@ -43,6 +43,31 @@ + #endif + + #if defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) ++#ifdef NEXTSTEP ++#include ++ ++/* ++** balazs.pataki@sztaki.hu: The getcwd is broken in NEXTSTEP (returns 0), ++** when called on a mounted fs. Did anyone notice this? Here's an ugly ++** workaround ... ++*/ ++#define getcwd(b,s) my_getcwd(b,s) ++ ++static char * ++my_getcwd (char *buf, size_t size) ++{ ++ FILE *pwd = popen("pwd", "r"); ++ char *result = fgets(buf, size, pwd); ++ ++ if (result) { ++ buf[strlen(buf)-1] = '\0'; ++ } ++ pclose (pwd); ++ return buf; ++} ++#endif /* NEXTSTEP */ ++ ++#if defined(LINUX) || defined(__GLIBC__) || defined(__GNU__) + #include + #endif + diff --git a/patches/porting-kfreebsd-hurd/adding-missed-HURD-adoptions.patch b/patches/porting-kfreebsd-hurd/adding-missed-HURD-adoptions.patch new file mode 100644 index 0000000000..74f3498820 --- /dev/null +++ b/patches/porting-kfreebsd-hurd/adding-missed-HURD-adoptions.patch @@ -0,0 +1,295 @@ +From: Carsten Schoenert +Date: Sun, 24 Apr 2016 20:49:46 +0200 +Subject: adding missed HURD adoptions + +Based on https://lists.alioth.debian.org/pipermail/pkg-mozilla-maintainers/2016-April/027634.html +--- + ipc/chromium/src/base/file_util_posix.cc | 2 +- + ipc/chromium/src/base/platform_thread.h | 2 +- + ipc/chromium/src/base/platform_thread_posix.cc | 2 +- + ipc/chromium/src/base/port.h | 2 +- + ipc/chromium/src/base/process_util.h | 2 +- + ipc/chromium/src/base/process_util_posix.cc | 38 ++++++++++++ + media/webrtc/signaling/src/sdp/sipcc/cpr_types.h | 2 +- + media/webrtc/trunk/webrtc/build/build_config.h | 6 +- + .../gtest/include/gtest/internal/gtest-port.h | 67 ++++++++++++++++++++++ + security/sandbox/chromium/build/build_config.h | 4 +- + 10 files changed, 119 insertions(+), 8 deletions(-) + +diff --git a/ipc/chromium/src/base/file_util_posix.cc b/ipc/chromium/src/base/file_util_posix.cc +index 2705e75..e343d70 100644 +--- a/ipc/chromium/src/base/file_util_posix.cc ++++ b/ipc/chromium/src/base/file_util_posix.cc +@@ -263,7 +263,7 @@ bool GetTempDir(FilePath* path) { + } + + bool GetShmemTempDir(FilePath* path) { +-# if defined(OS_LINUX) && !defined(ANDROID) ++# if defined(OS_LINUX) && !defined(ANDROID) || defined(OS_HURD) + *path = FilePath("/dev/shm"); + return true; + # else +diff --git a/ipc/chromium/src/base/platform_thread.h b/ipc/chromium/src/base/platform_thread.h +index 42f4865..41e84dc 100644 +--- a/ipc/chromium/src/base/platform_thread.h ++++ b/ipc/chromium/src/base/platform_thread.h +@@ -25,7 +25,7 @@ typedef void* PlatformThreadHandle; // HANDLE + # include + typedef pthread_t PlatformThreadHandle; + # if defined(OS_LINUX) || defined(OS_OPENBSD) || defined(OS_SOLARIS) || \ +- defined(__GLIBC__) ++ defined(__GLIBC__) || defined(OS_HURD) + # include + typedef pid_t PlatformThreadId; + # elif defined(OS_BSD) +diff --git a/ipc/chromium/src/base/platform_thread_posix.cc b/ipc/chromium/src/base/platform_thread_posix.cc +index 31b1592..609260e 100644 +--- a/ipc/chromium/src/base/platform_thread_posix.cc ++++ b/ipc/chromium/src/base/platform_thread_posix.cc +@@ -56,7 +56,7 @@ PlatformThreadId PlatformThread::CurrentId() { + #else + return getpid(); + #endif +-#elif defined(OS_OPENBSD) || defined(OS_SOLARIS) || defined(__GLIBC__) ++#elif defined(OS_OPENBSD) || defined(OS_SOLARIS) || defined(__GLIBC__) || defined(OS_HURD) + return (intptr_t)(pthread_self()); + #elif defined(OS_NETBSD) + return _lwp_self(); +diff --git a/ipc/chromium/src/base/port.h b/ipc/chromium/src/base/port.h +index 9d78f52..d6176c8 100644 +--- a/ipc/chromium/src/base/port.h ++++ b/ipc/chromium/src/base/port.h +@@ -58,7 +58,7 @@ namespace base { + // Define an OS-neutral wrapper for shared library entry points + #if defined(OS_WIN) + # define API_CALL __stdcall +-#elif defined(OS_LINUX) || defined(OS_MACOSX) ++#elif defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_HURD) + # define API_CALL + #endif + +diff --git a/ipc/chromium/src/base/process_util.h b/ipc/chromium/src/base/process_util.h +index 46b4ba3..7481cf7 100644 +--- a/ipc/chromium/src/base/process_util.h ++++ b/ipc/chromium/src/base/process_util.h +@@ -19,7 +19,7 @@ + # ifndef STDOUT_FILENO + # define STDOUT_FILENO 1 + # endif +-#elif defined(OS_LINUX) || defined(__GLIBC__) ++#elif defined(OS_LINUX) || defined(__GLIBC__) || defined(OS_HURD) + # include + # include + # include +diff --git a/ipc/chromium/src/base/process_util_posix.cc b/ipc/chromium/src/base/process_util_posix.cc +index bed6f31..a090c15 100644 +--- a/ipc/chromium/src/base/process_util_posix.cc ++++ b/ipc/chromium/src/base/process_util_posix.cc +@@ -131,6 +131,10 @@ void CloseSuperfluousFds(void* aCtx, bool (*aShouldPreserve)(void*, int)) { + static const rlim_t kSystemDefaultMaxFds = 1024; + // at least /dev/fd will exist + static const char kFDDir[] = "/dev/fd"; ++#elif defined(OS_HURD) ++ static const rlim_t kSystemDefaultMaxFds = 1024; ++ // Currently always empty, but it exists ++ static const char kFDDir[] = "/dev/fd"; + #endif + + // Get the maximum number of FDs possible. +@@ -193,6 +197,40 @@ void CloseSuperfluousFds(void* aCtx, bool (*aShouldPreserve)(void*, int)) { + } + } + ++// Sets all file descriptors to close on exec except for stdin, stdout ++// and stderr. ++// TODO(agl): Remove this function. It's fundamentally broken for multithreaded ++// apps. ++void SetAllFDsToCloseOnExec() { ++#if defined(OS_LINUX) || defined(OS_SOLARIS) ++ const char fd_dir[] = "/proc/self/fd"; ++#elif defined(OS_MACOSX) || defined(OS_BSD) || defined(OS_HURD) ++ const char fd_dir[] = "/dev/fd"; ++#endif ++ ScopedDIR dir_closer(opendir(fd_dir)); ++ DIR *dir = dir_closer.get(); ++ if (NULL == dir) { ++ DLOG(ERROR) << "Unable to open " << fd_dir; ++ return; ++ } ++ ++ struct dirent *ent; ++ while ((ent = readdir(dir))) { ++ // Skip . and .. entries. ++ if (ent->d_name[0] == '.') ++ continue; ++ int i = atoi(ent->d_name); ++ // We don't close stdin, stdout or stderr. ++ if (i <= STDERR_FILENO) ++ continue; ++ ++ int flags = fcntl(i, F_GETFD); ++ if ((flags == -1) || (fcntl(i, F_SETFD, flags | FD_CLOEXEC) == -1)) { ++ DLOG(ERROR) << "fcntl failure."; ++ } ++ } ++} ++ + bool DidProcessCrash(bool* child_exited, ProcessHandle handle) { + int status; + const int result = HANDLE_EINTR(waitpid(handle, &status, WNOHANG)); +diff --git a/media/webrtc/signaling/src/sdp/sipcc/cpr_types.h b/media/webrtc/signaling/src/sdp/sipcc/cpr_types.h +index f048e72..8bb0b59 100644 +--- a/media/webrtc/signaling/src/sdp/sipcc/cpr_types.h ++++ b/media/webrtc/signaling/src/sdp/sipcc/cpr_types.h +@@ -7,7 +7,7 @@ + + #include + +-#if defined SIP_OS_LINUX ++#if defined SIP_OS_LINUX || defined(SIP_OS_HURD) + #include "cpr_linux_types.h" + #elif defined SIP_OS_WINDOWS + #include "cpr_win_types.h" +diff --git a/media/webrtc/trunk/webrtc/build/build_config.h b/media/webrtc/trunk/webrtc/build/build_config.h +index 229d1f4..9654654 100644 +--- a/media/webrtc/trunk/webrtc/build/build_config.h ++++ b/media/webrtc/trunk/webrtc/build/build_config.h +@@ -37,6 +37,9 @@ + #elif defined(_WIN32) + #define OS_WIN 1 + #define TOOLKIT_VIEWS 1 ++#elif defined(__GNU__) ++#define OS_HURD 1 ++#define TOOLKIT_GTK + #elif defined(__DragonFly__) + #define OS_DRAGONFLY 1 + #define TOOLKIT_GTK +@@ -70,7 +73,8 @@ + // For access to standard POSIXish features, use OS_POSIX instead of a + // more specific macro. + #if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) || \ +- defined(OS_SOLARIS) || defined(OS_ANDROID) || defined(OS_NACL) ++ defined(OS_SOLARIS) || defined(OS_ANDROID) || defined(OS_NACL) || \ ++ defined(OS_HURD) + #define OS_POSIX 1 + #endif + +diff --git a/security/nss/gtests/google_test/gtest/include/gtest/internal/gtest-port.h b/security/nss/gtests/google_test/gtest/include/gtest/internal/gtest-port.h +index 786497d..2f2cbb6 100644 +--- a/security/nss/gtests/google_test/gtest/include/gtest/internal/gtest-port.h ++++ b/security/nss/gtests/google_test/gtest/include/gtest/internal/gtest-port.h +@@ -310,6 +310,64 @@ + (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__) + #endif // __GNUC__ + ++// Determines the platform on which Google Test is compiled. ++#ifdef __CYGWIN__ ++# define GTEST_OS_CYGWIN 1 ++#elif defined __SYMBIAN32__ ++# define GTEST_OS_SYMBIAN 1 ++#elif defined _WIN32 ++# define GTEST_OS_WINDOWS 1 ++# ifdef _WIN32_WCE ++# define GTEST_OS_WINDOWS_MOBILE 1 ++# elif defined(__MINGW__) || defined(__MINGW32__) ++# define GTEST_OS_WINDOWS_MINGW 1 ++# elif defined(WINAPI_FAMILY) ++# include ++# if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) ++# define GTEST_OS_WINDOWS_DESKTOP 1 ++# elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PHONE_APP) ++# define GTEST_OS_WINDOWS_PHONE 1 ++# elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) ++# define GTEST_OS_WINDOWS_RT 1 ++# else ++ // WINAPI_FAMILY defined but no known partition matched. ++ // Default to desktop. ++# define GTEST_OS_WINDOWS_DESKTOP 1 ++# endif ++# else ++# define GTEST_OS_WINDOWS_DESKTOP 1 ++# endif // _WIN32_WCE ++#elif defined __APPLE__ ++# define GTEST_OS_MAC 1 ++# if TARGET_OS_IPHONE ++# define GTEST_OS_IOS 1 ++# if TARGET_IPHONE_SIMULATOR ++# define GTEST_OS_IOS_SIMULATOR 1 ++# endif ++# endif ++#elif defined __linux__ ++# define GTEST_OS_LINUX 1 ++# if defined __ANDROID__ ++# define GTEST_OS_LINUX_ANDROID 1 ++# endif ++#elif defined __MVS__ ++# define GTEST_OS_ZOS 1 ++#elif defined(__sun) && defined(__SVR4) ++# define GTEST_OS_SOLARIS 1 ++#elif defined(_AIX) ++# define GTEST_OS_AIX 1 ++#elif defined(__hpux) ++# define GTEST_OS_HPUX 1 ++#elif defined __native_client__ ++# define GTEST_OS_NACL 1 ++#elif defined __OpenBSD__ ++# define GTEST_OS_OPENBSD 1 ++#elif defined __QNX__ ++# define GTEST_OS_QNX 1 ++#elif defined(__GNU__) ++# define GTEST_OS_HURD 1 ++#endif // __CYGWIN__ ++ + // Macros for disabling Microsoft Visual C++ warnings. + // + // GTEST_DISABLE_MSC_WARNINGS_PUSH_(4800 4385) +@@ -635,9 +693,14 @@ typedef struct _RTL_CRITICAL_SECTION GTEST_CRITICAL_SECTION; + // + // To disable threading support in Google Test, add -DGTEST_HAS_PTHREAD=0 + // to your compiler flags. ++<<<<<<< HEAD + #define GTEST_HAS_PTHREAD \ + (GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_HPUX || GTEST_OS_QNX || \ + GTEST_OS_FREEBSD || GTEST_OS_NACL || GTEST_OS_NETBSD || GTEST_OS_FUCHSIA) ++======= ++# define GTEST_HAS_PTHREAD (GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_HPUX \ ++ || GTEST_OS_QNX || GTEST_OS_HURD) ++>>>>>>> 8e31d5a9318... adding missed HURD adoptions + #endif // GTEST_HAS_PTHREAD + + #if GTEST_HAS_PTHREAD +@@ -828,8 +891,12 @@ typedef struct _RTL_CRITICAL_SECTION GTEST_CRITICAL_SECTION; + (GTEST_OS_MAC && !GTEST_OS_IOS) || \ + (GTEST_OS_WINDOWS_DESKTOP && _MSC_VER >= 1400) || \ + GTEST_OS_WINDOWS_MINGW || GTEST_OS_AIX || GTEST_OS_HPUX || \ ++<<<<<<< HEAD + GTEST_OS_OPENBSD || GTEST_OS_QNX || GTEST_OS_FREEBSD || \ + GTEST_OS_NETBSD || GTEST_OS_FUCHSIA) ++======= ++ GTEST_OS_OPENBSD || GTEST_OS_QNX || GTEST_OS_HURD) ++>>>>>>> 8e31d5a9318... adding missed HURD adoptions + # define GTEST_HAS_DEATH_TEST 1 + #endif + +diff --git a/security/sandbox/chromium/build/build_config.h b/security/sandbox/chromium/build/build_config.h +index 3a2607d..3100df4 100644 +--- a/security/sandbox/chromium/build/build_config.h ++++ b/security/sandbox/chromium/build/build_config.h +@@ -47,6 +47,8 @@ + // we really are using glibc, not uClibc pretending to be glibc + #define LIBC_GLIBC 1 + #endif ++#elif defined(__GNU__) ++#define OS_HURD 1 + #elif defined(_WIN32) + #define OS_WIN 1 + #elif defined(__Fuchsia__) +@@ -84,7 +86,7 @@ + #if defined(OS_AIX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \ + defined(OS_FUCHSIA) || defined(OS_LINUX) || defined(OS_MACOSX) || \ + defined(OS_NACL) || defined(OS_NETBSD) || defined(OS_OPENBSD) || \ +- defined(OS_QNX) || defined(OS_SOLARIS) ++ defined(OS_QNX) || defined(OS_SOLARIS) || defined(OS_HURD) + #define OS_POSIX 1 + #endif + diff --git a/patches/porting-kfreebsd-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-Hurd.patch b/patches/porting-kfreebsd-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-Hurd.patch new file mode 100644 index 0000000000..79284cad0d --- /dev/null +++ b/patches/porting-kfreebsd-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-Hurd.patch @@ -0,0 +1,60 @@ +From: Christoph Goehre +Date: Wed, 31 Oct 2012 13:27:07 -0400 +Subject: ipc/chromium: fix #if define() for kFreeBSD and Hurd + +The kFreeBSD and Hurd platforms need some other macros to include +the correct needed headers. +Depended on this some minor changes to call the correct functions +also needed. Also the list of the cpp source file for the chromium +things needs to expanded. +The changes is an adoption of the previous dropped patch 'Fix +ipc/chromium on kFreeBSD and Hurd' from the version 17. +--- + ipc/chromium/src/base/platform_thread_posix.cc | 20 ++++++++++++++++++-- + 1 file changed, 18 insertions(+), 2 deletions(-) + +diff --git a/ipc/chromium/src/base/platform_thread_posix.cc b/ipc/chromium/src/base/platform_thread_posix.cc +index e0d6726..31b1592 100644 +--- a/ipc/chromium/src/base/platform_thread_posix.cc ++++ b/ipc/chromium/src/base/platform_thread_posix.cc +@@ -13,7 +13,7 @@ + # include + #elif defined(OS_NETBSD) + # include +-#elif defined(OS_LINUX) ++#elif defined(OS_LINUX) && !defined(__FreeBSD_kernel__) && !defined(__GNU__) + # include + # include + #endif +@@ -22,7 +22,7 @@ + # include + #endif + +-#if defined(OS_BSD) && !defined(OS_NETBSD) && !defined(__GLIBC__) ++#if defined(OS_BSD) && !defined(OS_NETBSD) && !defined(__GLIBC__) && !defined(__FreeBSD_kernel__) + # include + #endif + +@@ -100,6 +100,22 @@ void PlatformThread::SetName(const char* name) { + // also sets the thread name on the PRThread wrapper, and allows us to + // retrieve it using PR_GetThreadName. + NS_SetCurrentThreadName(name); ++ ++ // http://0pointer.de/blog/projects/name-your-threads.html ++ // Set the name for the LWP (which gets truncated to 15 characters). ++ // Note that glibc also has a 'pthread_setname_np' api, but it may not be ++ // available everywhere and it's only benefit over using prctl directly is ++ // that it can set the name of threads other than the current thread. ++#if defined(OS_LINUX) && !defined(__FreeBSD_kernel__) && !defined(__GNU__) ++ prctl(PR_SET_NAME, reinterpret_cast(name), 0, 0, 0); ++#elif defined(OS_NETBSD) ++ pthread_setname_np(pthread_self(), "%s", (void *)name); ++#elif defined(OS_BSD) && !defined(__GLIBC__) ++ pthread_set_name_np(pthread_self(), name); ++#elif defined(OS_SOLARIS) ++ pthread_setname_np(pthread_self(), name); ++#else ++#endif + } + #endif // !OS_MACOSX + diff --git a/patches/porting-m68k/Add-m68k-support-to-Thunderbird.patch b/patches/porting-m68k/Add-m68k-support-to-Thunderbird.patch new file mode 100644 index 0000000000..007221be5c --- /dev/null +++ b/patches/porting-m68k/Add-m68k-support-to-Thunderbird.patch @@ -0,0 +1,451 @@ +From: John Paul Adrian Glaubitz +Date: Sun, 2 Apr 2017 09:14:39 +0200 +Subject: Add m68k support to Thunderbird + +Origin: not yet exist +Bug-Debian: https://bugs.debian.org/859271 +Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1325771 +Applied-Upstream: TBD + +All patches have been reviewed by positively by upstream with the +exception of the alignment fixes where upstream wants to use a +C++11 solution instead of the other suggestions I made. This patch +currently uses __attribute__((aligned(4))) to ensure the alignment +is at least 4 bytes. This method is safe and works on gcc and clang +and unlike the suggested alignas() from C++11 does not break on +architectures which require stricter alignment (e.g. alignas(4) +would break on x86_64 while __attribute__((aligned(4))) does not +as it still allows for 8 bytes alignment. + +Cherry-picked and adapted patches from Firefox upstream: +- a31a2d92cf9a2f4e9ad2d12cb74f96579f54fa5e + Bug 1325771 - layout:style: Make sure nsCSSValue has at least 4 bytes alignment +- b65c6cf80f7038f47c7f5d223a6528d4aa4538cf + Bug 1325771 - js:src: Make sure shadow::Shape has at least 4 bytes alignment +- cbbe025c5034cfa28aa2a8a4e557f9a066ddd013 + Bug 1325771 - js:src: Make sure Cell has at least 4 bytes alignment +- 6441fad686d30230a6842a6432bc134ca20c4125 + Bug 1325771 - js:jit: Use 'Feeling Lucky' atomic operations on m68k +- ec66da836071ec0f05a3517947c8e1a68620c399 + Bug 1325771 - mfbt:tests: Handle targets with less strict alignment in TestPair +- 48f3a6331cad497b933dc6e197f7a006b9189290 + Bug 1325771 - ipc:chromium: Add platform defines for m68k +- 26cd64f37741d85bc13c19bc55e3c6e26da59052 + Bug 1325771 - media:webrtc: Add platform defines for m68k +- bd19fe85678f948f60caa864a2af28c3c39059c7 + Bug 1325771 - mfbt:tests: Define RETURN_INSTR for m68k in TestPoisonArea +- a3e704b48760e3d45d20fc6bb13282d3285ba6bb + Bug 1325771 - xpcom: Fix type of result in NS_InvokeByIndex on Linux/m68k +- 174cfc890291778d12241c9a4cfc25ea85fdd3a0 + Bug 1325771 - xpcom: Fix syntax error in PrepareAndDispatch on Linux/m68k +Additional changes: +- Add defines for m68k to double-conversion library +- Make sure both "struct Class" and "struct JSClass" have at + least 4 bytes alignment +--- + build/moz.configure/init.configure | 3 + + ipc/chromium/src/build/build_config.h | 3 + + js/src/jsfriendapi.h | 2 +- + layout/style/nsCSSValue.h | 2 +- + media/webrtc/trunk/webrtc/build/build_config.h | 10 ++ + mfbt/tests/TestPair.cpp | 9 +- + mfbt/tests/TestPoisonArea.cpp | 3 + + python/mozbuild/mozbuild/configure/constants.py | 2 + + .../test/configure/test_toolchain_configure.py | 3 + + .../xptcall/md/unix/xptcinvoke_linux_m68k.cpp | 131 +++++++++++++++++++++ + .../xptcall/md/unix/xptcstubs_linux_m68k.cpp | 98 +++++++++++++++ + 11 files changed, 262 insertions(+), 4 deletions(-) + create mode 100644 xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_m68k.cpp + create mode 100644 xpcom/reflect/xptcall/md/unix/xptcstubs_linux_m68k.cpp + +diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure +index c772604..e563ecd 100644 +--- a/build/moz.configure/init.configure ++++ b/build/moz.configure/init.configure +@@ -733,6 +733,9 @@ def split_triplet(triplet, allow_unknown=False): + elif cpu == 'sh4': + canonical_cpu = 'sh4' + endianness = 'little' ++ elif cpu in ('m68k'): ++ canonical_cpu = 'm68k' ++ endianness = 'big' + elif allow_unknown: + canonical_cpu = cpu + endianness = 'unknown' +diff --git a/ipc/chromium/src/build/build_config.h b/ipc/chromium/src/build/build_config.h +index 72105fc..1fa8db1 100644 +--- a/ipc/chromium/src/build/build_config.h ++++ b/ipc/chromium/src/build/build_config.h +@@ -81,6 +81,9 @@ + # define ARCH_CPU_ARMEL 1 + # define ARCH_CPU_32_BITS 1 + # define WCHAR_T_IS_UNSIGNED 1 ++#elif defined(__m68k__) ++# define ARCH_CPU_M68K 1 ++# define ARCH_CPU_32_BITS 1 + #elif defined(__powerpc64__) + # define ARCH_CPU_PPC64 1 + # define ARCH_CPU_64_BITS 1 +diff --git a/js/src/jsfriendapi.h b/js/src/jsfriendapi.h +index cae590c..60cd080 100644 +--- a/js/src/jsfriendapi.h ++++ b/js/src/jsfriendapi.h +@@ -551,7 +551,7 @@ class Shape { + + static const uint32_t FIXED_SLOTS_SHIFT = 24; + static const uint32_t FIXED_SLOTS_MASK = 0x1f << FIXED_SLOTS_SHIFT; +-}; ++} __attribute__ ((aligned(4))); + + /** + * This layout is shared by all native objects. For non-native objects, the +diff --git a/layout/style/nsCSSValue.h b/layout/style/nsCSSValue.h +index 1efd013..12afb69 100644 +--- a/layout/style/nsCSSValue.h ++++ b/layout/style/nsCSSValue.h +@@ -411,6 +411,6 @@ class nsCSSValue { + int32_t mInt; + float mFloat; + } mValue; +-}; ++} __attribute__ ((aligned(4))); + + #endif /* nsCSSValue_h___ */ +diff --git a/media/webrtc/trunk/webrtc/build/build_config.h b/media/webrtc/trunk/webrtc/build/build_config.h +index 9654654..39b33b5 100644 +--- a/media/webrtc/trunk/webrtc/build/build_config.h ++++ b/media/webrtc/trunk/webrtc/build/build_config.h +@@ -118,6 +118,16 @@ + #define ARCH_CPU_LITTLE_ENDIAN 1 + #elif defined(__pnacl__) + #define ARCH_CPU_32_BITS 1 ++#elif defined(__MIPSEL__) ++#define ARCH_CPU_MIPS_FAMILY 1 ++#define ARCH_CPU_MIPSEL 1 ++#define ARCH_CPU_32_BITS 1 ++#define ARCH_CPU_LITTLE_ENDIAN 1 ++#elif defined(__m68k__) ++#define ARCH_CPU_M68K_FAMILY 1 ++#define ARCH_CPU_M68K 1 ++#define ARCH_CPU_32_BITS 1 ++#define ARCH_CPU_BIG_ENDIAN 1 + #elif defined(__powerpc64__) + #define ARCH_CPU_PPC_FAMILY 1 + #define ARCH_CPU_PPC64 1 +diff --git a/mfbt/tests/TestPair.cpp b/mfbt/tests/TestPair.cpp +index 4b95a92..73d9a48 100644 +--- a/mfbt/tests/TestPair.cpp ++++ b/mfbt/tests/TestPair.cpp +@@ -29,8 +29,13 @@ using mozilla::Pair; + static_assert(sizeof(name##_2) == (size), \ + "Pair<" #T2 ", " #T1 "> has an unexpected size"); + ++static constexpr size_t sizemax(size_t a, size_t b) ++{ ++ return (a > b) ? a : b; ++} ++ + INSTANTIATE(int, int, prim1, 2 * sizeof(int)); +-INSTANTIATE(int, long, prim2, 2 * sizeof(long)); ++INSTANTIATE(int, long, prim2, sizeof(long) + sizemax(sizeof(int), alignof(long))); + + struct EmptyClass { + explicit EmptyClass(int) {} +@@ -41,7 +46,7 @@ struct NonEmpty { + }; + + INSTANTIATE(int, EmptyClass, both1, sizeof(int)); +-INSTANTIATE(int, NonEmpty, both2, 2 * sizeof(int)); ++INSTANTIATE(int, NonEmpty, both2, sizeof(int) + alignof(int)); + INSTANTIATE(EmptyClass, NonEmpty, both3, 1); + + struct A { +diff --git a/mfbt/tests/TestPoisonArea.cpp b/mfbt/tests/TestPoisonArea.cpp +index 2834678..445c707 100644 +--- a/mfbt/tests/TestPoisonArea.cpp ++++ b/mfbt/tests/TestPoisonArea.cpp +@@ -132,6 +132,9 @@ + #elif defined _ARCH_PPC || defined _ARCH_PWR || defined _ARCH_PWR2 + # define RETURN_INSTR 0x4E800020 /* blr */ + ++#elif defined __m68k__ ++#define RETURN_INSTR 0x4E754E75 /* rts; rts */ ++ + #elif defined __sparc || defined __sparcv9 + # define RETURN_INSTR 0x81c3e008 /* retl */ + +diff --git a/python/mozbuild/mozbuild/configure/constants.py b/python/mozbuild/mozbuild/configure/constants.py +index 8b7d226..3266982 100644 +--- a/python/mozbuild/mozbuild/configure/constants.py ++++ b/python/mozbuild/mozbuild/configure/constants.py +@@ -46,6 +46,7 @@ CPU_bitness = { + 'arm': 32, + 'hppa': 32, + 'ia64': 64, ++ 'm68k': 32, + 'mips32': 32, + 'mips64': 64, + 'ppc': 32, +@@ -89,6 +90,7 @@ CPU_preprocessor_checks = OrderedDict(( + ('mips64', '__mips64'), + ('mips32', '__mips__'), + ('sh4', '__sh__'), ++ ('m68k', '__m68k__'), + )) + + assert sorted(CPU_preprocessor_checks.keys()) == sorted(CPU.POSSIBLE_VALUES) +diff --git a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py +index b402406..c7fd6f6 100755 +--- a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py ++++ b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py +@@ -1125,6 +1125,9 @@ class LinuxCrossCompileToolchainTest(BaseToolchainTest): + 'sh4-unknown-linux-gnu': little_endian + { + '__sh__': 1, + }, ++ 'm68k-unknown-linux-gnu': big_endian + { ++ '__m68k__': 1, ++ }, + } + + PLATFORMS['powerpc64le-unknown-linux-gnu'] = \ +diff --git a/xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_m68k.cpp b/xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_m68k.cpp +new file mode 100644 +index 0000000..6989340 +--- /dev/null ++++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_m68k.cpp +@@ -0,0 +1,131 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++/* This Source Code Form is subject to the terms of the Mozilla Public ++ * License, v. 2.0. If a copy of the MPL was not distributed with this ++ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ ++ ++/* Platform specific code to invoke XPCOM methods on native objects */ ++ ++#include "xptcprivate.h" ++ ++// Remember that these 'words' are 32bit DWORDS ++ ++extern "C" { ++ static uint32_t ++ invoke_count_words(uint32_t paramCount, nsXPTCVariant* s) ++ { ++ uint32_t result = 0; ++ for(uint32_t i = 0; i < paramCount; i++, s++) ++ { ++ if(s->IsPtrData()) ++ { ++ result++; ++ continue; ++ } ++ switch(s->type) ++ { ++ case nsXPTType::T_I8 : ++ case nsXPTType::T_I16 : ++ case nsXPTType::T_I32 : ++ result++; ++ break; ++ case nsXPTType::T_I64 : ++ result+=2; ++ break; ++ case nsXPTType::T_U8 : ++ case nsXPTType::T_U16 : ++ case nsXPTType::T_U32 : ++ result++; ++ break; ++ case nsXPTType::T_U64 : ++ result+=2; ++ break; ++ case nsXPTType::T_FLOAT : ++ result++; ++ break; ++ case nsXPTType::T_DOUBLE : ++ result+=2; ++ break; ++ case nsXPTType::T_BOOL : ++ case nsXPTType::T_CHAR : ++ case nsXPTType::T_WCHAR : ++ result++; ++ break; ++ default: ++ // all the others are plain pointer types ++ result++; ++ break; ++ } ++ } ++ return result; ++ } ++ ++ void ++ invoke_copy_to_stack(uint32_t* d, uint32_t paramCount, nsXPTCVariant* s) ++ { ++ for(uint32_t i = 0; i < paramCount; i++, d++, s++) ++ { ++ if(s->IsPtrData()) ++ { ++ *((void**)d) = s->ptr; ++ continue; ++ } ++ switch(s->type) ++ { ++ // 8 and 16 bit types should be promoted to 32 bits when copying ++ // onto the stack. ++ case nsXPTType::T_I8 : *((uint32_t*)d) = s->val.i8; break; ++ case nsXPTType::T_I16 : *((uint32_t*)d) = s->val.i16; break; ++ case nsXPTType::T_I32 : *((int32_t*) d) = s->val.i32; break; ++ case nsXPTType::T_I64 : *((int64_t*) d) = s->val.i64; d++; break; ++ case nsXPTType::T_U8 : *((uint32_t*)d) = s->val.u8; break; ++ case nsXPTType::T_U16 : *((uint32_t*)d) = s->val.u16; break; ++ case nsXPTType::T_U32 : *((uint32_t*)d) = s->val.u32; break; ++ case nsXPTType::T_U64 : *((uint64_t*)d) = s->val.u64; d++; break; ++ case nsXPTType::T_FLOAT : *((float*) d) = s->val.f; break; ++ case nsXPTType::T_DOUBLE : *((double*) d) = s->val.d; d++; break; ++ case nsXPTType::T_BOOL : *((uint32_t*)d) = s->val.b; break; ++ case nsXPTType::T_CHAR : *((uint32_t*)d) = s->val.c; break; ++ case nsXPTType::T_WCHAR : *((wchar_t*) d) = s->val.wc; break; ++ ++ default: ++ // all the others are plain pointer types ++ *((void**)d) = s->val.p; ++ break; ++ } ++ } ++ } ++} ++ ++EXPORT_XPCOM_API(nsresult) ++NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex, ++ uint32_t paramCount, nsXPTCVariant* params) ++{ ++ nsresult result; ++ uint32_t n; ++ ++ n = invoke_count_words(paramCount, params) * 4; ++ ++ __asm__ __volatile__( ++ "subl %5, %%sp\n\t" /* make room for params */ ++ "movel %4, %%sp@-\n\t" ++ "movel %3, %%sp@-\n\t" ++ "pea %%sp@(8)\n\t" ++ "jbsr invoke_copy_to_stack\n\t" /* copy params */ ++ "addw #12, %%sp\n\t" ++ "movel %1, %%sp@-\n\t" ++ "movel %1@, %%a0\n\t" ++ "movel %%a0@(%2:l:4), %%a0\n\t" ++ "jbsr %%a0@\n\t" /* safe to not cleanup sp */ ++ "lea %%sp@(4,%5:l), %%sp\n\t" ++ "movel %%d0, %0" ++ : "=d" (result) /* %0 */ ++ : "a" (that), /* %1 */ ++ "d" (methodIndex), /* %2 */ ++ "g" (paramCount), /* %3 */ ++ "g" (params), /* %4 */ ++ "d" (n) /* %5 */ ++ : "a0", "a1", "d0", "d1", "memory" ++ ); ++ ++ return result; ++} +diff --git a/xpcom/reflect/xptcall/md/unix/xptcstubs_linux_m68k.cpp b/xpcom/reflect/xptcall/md/unix/xptcstubs_linux_m68k.cpp +new file mode 100644 +index 0000000..fc33ba0 +--- /dev/null ++++ b/xpcom/reflect/xptcall/md/unix/xptcstubs_linux_m68k.cpp +@@ -0,0 +1,98 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++/* This Source Code Form is subject to the terms of the Mozilla Public ++ * License, v. 2.0. If a copy of the MPL was not distributed with this ++ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ ++ ++/* Implement shared vtbl methods. */ ++ ++#include "xptcprivate.h" ++#include "xptiprivate.h" ++ ++extern "C" { ++ nsresult ATTRIBUTE_USED ++ PrepareAndDispatch(nsXPTCStubBase* self, uint32_t methodIndex, uint32_t* args) ++ { ++#define PARAM_BUFFER_COUNT 16 ++ ++ nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; ++ nsXPTCMiniVariant* dispatchParams = nullptr; ++ const nsXPTMethodInfo* info; ++ uint8_t paramCount; ++ uint8_t i; ++ nsresult result = NS_ERROR_FAILURE; ++ ++ NS_ASSERTION(self,"no self"); ++ ++ self->mEntry->GetMethodInfo(uint16_t(methodIndex), &info); ++ NS_ASSERTION(info,"no method info"); ++ ++ paramCount = info->GetParamCount(); ++ ++ // setup variant array pointer ++ if(paramCount > PARAM_BUFFER_COUNT) ++ dispatchParams = new nsXPTCMiniVariant[paramCount]; ++ else ++ dispatchParams = paramBuffer; ++ NS_ASSERTION(dispatchParams,"no place for params"); ++ ++ uint32_t* ap = args; ++ for(i = 0; i < paramCount; i++, ap++) ++ { ++ const nsXPTParamInfo& param = info->GetParam(i); ++ const nsXPTType& type = param.GetType(); ++ nsXPTCMiniVariant* dp = &dispatchParams[i]; ++ ++ if(param.IsOut() || !type.IsArithmetic()) ++ { ++ dp->val.p = (void*) *ap; ++ continue; ++ } ++ ++ switch(type) ++ { ++ // the 8 and 16 bit types will have been promoted to 32 bits before ++ // being pushed onto the stack. Since the 68k is big endian, we ++ // need to skip over the leading high order bytes. ++ case nsXPTType::T_I8 : dp->val.i8 = *(((int8_t*) ap) + 3); break; ++ case nsXPTType::T_I16 : dp->val.i16 = *(((int16_t*) ap) + 1); break; ++ case nsXPTType::T_I32 : dp->val.i32 = *((int32_t*) ap); break; ++ case nsXPTType::T_I64 : dp->val.i64 = *((int64_t*) ap); ap++; break; ++ case nsXPTType::T_U8 : dp->val.u8 = *(((uint8_t*) ap) + 3); break; ++ case nsXPTType::T_U16 : dp->val.u16 = *(((uint16_t*)ap) + 1); break; ++ case nsXPTType::T_U32 : dp->val.u32 = *((uint32_t*)ap); break; ++ case nsXPTType::T_U64 : dp->val.u64 = *((uint64_t*)ap); ap++; break; ++ case nsXPTType::T_FLOAT : dp->val.f = *((float*) ap); break; ++ case nsXPTType::T_DOUBLE : dp->val.d = *((double*) ap); ap++; break; ++ case nsXPTType::T_BOOL : dp->val.b = *((uint32_t*)ap); break; ++ case nsXPTType::T_CHAR : dp->val.c = *(((char*) ap) + 3); break; ++ case nsXPTType::T_WCHAR : dp->val.wc = *((wchar_t*) ap); break; ++ default: ++ NS_ERROR("bad type"); ++ break; ++ } ++ } ++ ++ result = self->mOuter->CallMethod((uint16_t)methodIndex, info, dispatchParams); ++ ++ if(dispatchParams != paramBuffer) ++ delete [] dispatchParams; ++ ++ return result; ++ } ++} ++ ++#define STUB_ENTRY(n) \ ++nsresult nsXPTCStubBase::Stub##n() \ ++{ \ ++ void *frame = __builtin_frame_address(0); \ ++ return PrepareAndDispatch(this, n, (uint32_t*)frame + 3); \ ++} ++ ++#define SENTINEL_ENTRY(n) \ ++nsresult nsXPTCStubBase::Sentinel##n() \ ++{ \ ++ NS_ERROR("nsXPTCStubBase::Sentinel called"); \ ++ return NS_ERROR_NOT_IMPLEMENTED; \ ++} ++ ++#include "xptcstubsdef.inc" diff --git a/patches/porting-ppc64el/work-around-a-build-failure-with-clang-on-ppc64el.patch b/patches/porting-ppc64el/work-around-a-build-failure-with-clang-on-ppc64el.patch new file mode 100644 index 0000000000..5592417945 --- /dev/null +++ b/patches/porting-ppc64el/work-around-a-build-failure-with-clang-on-ppc64el.patch @@ -0,0 +1,23 @@ +From: Carsten Schoenert +Date: Sat, 5 Oct 2019 15:34:16 +0200 +Subject: work around a build failure with clang on ppc64el + +Author: Olivier Tilloy +Bug: https://bugzilla.mozilla.org/1555531 +--- + security/nss/lib/freebl/mpi/mpcpucache.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/security/nss/lib/freebl/mpi/mpcpucache.c b/security/nss/lib/freebl/mpi/mpcpucache.c +index 336b4cc..5487e02 100644 +--- a/security/nss/lib/freebl/mpi/mpcpucache.c ++++ b/security/nss/lib/freebl/mpi/mpcpucache.c +@@ -704,7 +704,7 @@ s_mpi_getProcessorLineSize() + #define MPI_GET_PROCESSOR_LINE_SIZE_DEFINED 1 + #endif + +-#if defined(__ppc64__) ++#if 0 + /* + * Sigh, The PPC has some really nice features to help us determine cache + * size, since it had lots of direct control functions to do so. The POWER diff --git a/patches/porting-sh4/Add-sh4-support-to-Thunderbird.patch b/patches/porting-sh4/Add-sh4-support-to-Thunderbird.patch new file mode 100644 index 0000000000..db7cae5491 --- /dev/null +++ b/patches/porting-sh4/Add-sh4-support-to-Thunderbird.patch @@ -0,0 +1,559 @@ +From: John Paul Adrian Glaubitz +Date: Thu, 18 May 2017 19:08:05 +0200 +Subject: Add sh4 support to Thunderbird + +Cherry-picked and adapted patches from Firefox upstream: +- 5a74d13630a969473f72a143f37728f5bb87f552 +Bug 1329194 - mozbuild: Add SH4 as target architecture. +- b179235c38eb631286f9e2fd4a7b23361dbab6d2 +Bug 1329194 - js:jit: Use PowerPC atomic operations on SH. +- ba58645c87ed7e08b16adc3b40f0c6e3b6a2e140 +Bug 1329194 - mfbt:tests: Define RETURN_INSTR for SH in TestPoisonArea. +- 942df3d3a4a1db3d182e97c54fb1705c50128470 +Bug 1329194 - ipc:chromium: Add platform defines for SH. +- 85ae466ed90b3a0cac396aed24722ce4d0febb31 +Bug 1329194 - media:webrtc: Add platform defines for SH. +- 5a74d13630a969473f72a143f37728f5bb87f552 +Bug 1329194 - mozbuild: Add SH4 as target architecture. +- (not committed upstream yet) +Bug 382214 - xpcom: Add xptcall support for Linux/SH +- (not committed upstream yet) +Bug 382214 - xpcom: Make SH xpctcall inline assembly position-independent + +Closes: #859508 +--- + python/mozbuild/mozbuild/configure/constants.py | 1 + + .../test/configure/test_toolchain_configure.py | 3 + + xpcom/reflect/xptcall/md/unix/moz.build | 5 + + .../xptcall/md/unix/xptcinvoke_linux_sh.cpp | 210 +++++++++++++++++ + .../reflect/xptcall/md/unix/xptcstubs_linux_sh.cpp | 262 +++++++++++++++++++++ + 5 files changed, 481 insertions(+) + create mode 100644 xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_sh.cpp + create mode 100644 xpcom/reflect/xptcall/md/unix/xptcstubs_linux_sh.cpp + +diff --git a/python/mozbuild/mozbuild/configure/constants.py b/python/mozbuild/mozbuild/configure/constants.py +index 3266982..374318d 100644 +--- a/python/mozbuild/mozbuild/configure/constants.py ++++ b/python/mozbuild/mozbuild/configure/constants.py +@@ -91,6 +91,7 @@ CPU_preprocessor_checks = OrderedDict(( + ('mips32', '__mips__'), + ('sh4', '__sh__'), + ('m68k', '__m68k__'), ++ ('sh4', '__sh__'), + )) + + assert sorted(CPU_preprocessor_checks.keys()) == sorted(CPU.POSSIBLE_VALUES) +diff --git a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py +index c7fd6f6..1a06f3b 100755 +--- a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py ++++ b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py +@@ -1128,6 +1128,9 @@ class LinuxCrossCompileToolchainTest(BaseToolchainTest): + 'm68k-unknown-linux-gnu': big_endian + { + '__m68k__': 1, + }, ++ 'sh4-unknown-linux-gnu': little_endian + { ++ '__sh__': 1, ++ }, + } + + PLATFORMS['powerpc64le-unknown-linux-gnu'] = \ +diff --git a/xpcom/reflect/xptcall/md/unix/moz.build b/xpcom/reflect/xptcall/md/unix/moz.build +index 61a364a..52b7988 100644 +--- a/xpcom/reflect/xptcall/md/unix/moz.build ++++ b/xpcom/reflect/xptcall/md/unix/moz.build +@@ -252,6 +252,11 @@ if CONFIG['OS_ARCH'] == 'Linux': + CXXFLAGS += [ + '-fno-integrated-as', + ] ++ elif CONFIG['OS_TEST'] in ('sh4', 'sh4a'): ++ SOURCES += [ ++ 'xptcinvoke_linux_sh.cpp', ++ 'xptcstubs_linux_sh.cpp', ++ ] + + FINAL_LIBRARY = 'xul' + +diff --git a/xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_sh.cpp b/xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_sh.cpp +new file mode 100644 +index 0000000..6462551 +--- /dev/null ++++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_sh.cpp +@@ -0,0 +1,210 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- ++ * ++ * ***** BEGIN LICENSE BLOCK ***** ++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 ++ * ++ * The contents of this file are subject to the Mozilla Public License Version ++ * 1.1 (the "License"); you may not use this file except in compliance with ++ * the License. You may obtain a copy of the License at ++ * http://www.mozilla.org/MPL/ ++ * ++ * Software distributed under the License is distributed on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ++ * for the specific language governing rights and limitations under the ++ * License. ++ * ++ * The Original Code is mozilla.org code. ++ * ++ * The Initial Developer of the Original Code is ++ * Netscape Communications Corporation. ++ * Portions created by the Initial Developer are Copyright (C) 1998 ++ * the Initial Developer. All Rights Reserved. ++ * ++ * Contributor(s): ++ * - Copyright (C) 2008-2009 STMicroelectronics ++ * ++ * Alternatively, the contents of this file may be used under the terms of ++ * either of the GNU General Public License Version 2 or later (the "GPL"), ++ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), ++ * in which case the provisions of the GPL or the LGPL are applicable instead ++ * of those above. If you wish to allow use of your version of this file only ++ * under the terms of either the GPL or the LGPL, and not to allow others to ++ * use your version of this file under the terms of the MPL, indicate your ++ * decision by deleting the provisions above and replace them with the notice ++ * and other provisions required by the GPL or the LGPL. If you do not delete ++ * the provisions above, a recipient may use your version of this file under ++ * the terms of any one of the MPL, the GPL or the LGPL. ++ * ++ * Based on the neutroni port, however that assumed that the compiler was pushing params ++ * onto the stack. Change to take this into account. ++ * ++ * ***** END LICENSE BLOCK ***** */ ++ ++/* Recommended reference guides are: ++ * ++ * + SH-4 CPU Core Architecture - http://www.st.com/resource/en/user_manual/cd00147165.pdf ++ * + SH-4 Software Manual - https://documentation.renesas.com/eng/products/mpumcu/rej09b0318_sh_4sm.pdf ++ * ++ */ ++ ++#include "xptcprivate.h" ++ ++extern "C" { ++ ++const int c_int_register_params = 4; ++const int c_float_register_params = 8; ++ ++static PRUint32 __attribute__((__used__)) ++copy_to_stack(PRUint32 **that,PRUint32 methodIndex,PRUint32 paramCount, nsXPTCVariant* s,PRUint32* data) ++{ ++ int intCount = 1; // Because of that ++ int floatCount = 0; ++ PRUint32 *intRegParams=data+1 ; ++ float *floatRegParams = (float *)(data+4); ++ ++ /* Push the that register into the right place so it can be restored on exit */ ++ *data= (PRUint32)(that); ++ data+=12; /* 4 integer registers, and 8 floating point registers */ ++ ++ for ( PRUint32 i = 0; i < paramCount; ++i, ++s ) ++ { ++ nsXPTType type = s->IsPtrData() ? nsXPTType::T_I32 : s->type; ++ ++ switch ( type ) { ++ case nsXPTType::T_I64: ++ case nsXPTType::T_U64: ++ // Space to pass in registers? ++ if ( (c_int_register_params - intCount) >= 2 ) { ++ *((PRInt64 *) intRegParams) = s->val.i64; ++ intRegParams += 2; ++ intCount += 2; ++ } ++ else { ++ *((PRInt64*) data) = s->val.i64; ++ data += 2; ++ } ++ break; ++ case nsXPTType::T_FLOAT: ++ // Space to pass in registers? ++ if ( floatCount < c_float_register_params ) { ++ *floatRegParams = s->val.f; ++ ++floatCount; ++ ++floatRegParams; ++ } ++ else { ++ *((float*) data) = s->val.f; ++ ++data; ++ } ++ break; ++ case nsXPTType::T_DOUBLE: ++ // Space to pass in registers? ++ if ( (c_float_register_params - floatCount) >= 2 ) { ++ if ( (floatCount & 1) != 0 ) { ++ ++floatCount; ++ ++floatRegParams; ++ } ++ *(double *)floatRegParams = s->val.d; ++ floatCount += 2; ++ floatRegParams += 2; ++ } ++ else { ++ *((double *) data) = s->val.d; ++ data += 2; ++ } ++ break; ++ default: // 32 (non-float) value ++ PRInt32 value = (PRInt32) (s->IsPtrData() ? s->ptr : s->val.p); ++ // Space to pass in registers? ++ if ( intCount < c_int_register_params ) { ++ *intRegParams = value; ++ ++intRegParams; ++ ++intCount; ++ } ++ else { ++ *data = value; ++ ++data; ++ } ++ break; ++ } ++ } ++ ++ /* Now calculate the return address ++ * Dereference that to get vtable pointer ++ */ ++ return *( (*(that))+(methodIndex) ); ++ ++} ++ ++} ++ ++ /* This was originally done as a C function, but the original code was ++ * relying on how the compiler laid out the stack. Later versions of ++ * gcc do a better job of optimising and never push the parameters on the ++ * stack. So it is simpler to just write the whole thing in assembler anyway ++ */ ++ ++ /* Because the SH processor passes the first few parameters in registers ++ it is a bit tricky setting things up right. To make things easier, ++ all the hard work will be done by copy_to_stack above. We pass to it ++ a chunk of memory, the bottom of which will be copied to registers r4 to r7 ++ and fr4 to fr11 before calling the target function. ++ */ ++ ++/* r4= that, r5=methodIndex,r6=paramCount,r7=params */ ++ ++ __asm__ ( ++ ++ ++ /* Make space for parameters to be passed to the method. Assume worst case ++ 8 bytes per parameter. Also leave space for 4 longs and 8 floats that ++ will be put into registers. The worst case is all int64 parameters ++ and even in this case 8 bytes are passed in registers so we can ++ deduct this from our allocation. ++ */ ++ ".section .text\n" ++ ".balign 4\n" ++ ".global NS_InvokeByIndex\n" ++ "NS_InvokeByIndex:\n" ++ "mov.l r14, @-r15 \n\t" // Push frame ++ "sts.l pr, @-r15 \n\t" // Push link ++ "mov.l r8, @-r15 \n\t" // Save ++ "mov r15, r14\n\t" // Set frame ++ "mov #3, r1 \n\t" // Assume worse case, all params are 64bit, hence *8 ++ "mov r6, r2\n\t" ++ "shld r1, r2 \n\t" ++ "mov r2, r8 \n\t" // Save stack drop ++ "add #48, r2 \n\t" // Space for 4 longs, 8 floats ++ "sub r2, r15 \n\t" // Drop stack ++ "mov.l 1f, r1 \n\t" // Get relative address of copy_to_stack_function ++ "bsrf r1 \n\t" ++ "mov.l r15, @-r15 \n\t" // Params will be dumped here ++ "0:\n\t" ++ "add #4, r15 \n\t" // Pop stack ptr param. r0 contains method address ++ ++ /* Now everything is laid out nicely in the stack. We just have to ++ load values at the top end of the memory area into registers and ++ make the call. We may load more things into registers than needed, ++ but nobody will care about that. ++ */ ++ ++ "mov.l @r15+, r4 \n\t" // that ++ "mov.l @r15+, r5 \n\t" ++ "mov.l @r15+, r6 \n\t" ++ "mov.l @r15+, r7 \n\t" ++ "fmov.s @r15+, fr5 \n\t" ++ "fmov.s @r15+, fr4 \n\t" ++ "fmov.s @r15+, fr7 \n\t" ++ "fmov.s @r15+, fr6 \n\t" ++ "fmov.s @r15+, fr9 \n\t" ++ "fmov.s @r15+, fr8 \n\t" ++ "fmov.s @r15+, fr11 \n\t" ++ "jsr @r0 \n\t" // Invoke method ++ "fmov.s @r15+, fr10 \n\t" ++ "add r8, r15\n\t" // Pop stack back ++ "mov.l @r15+, r8\n\t" // Restore r8 ++ "lds.l @r15+, pr\n\t" ++ "rts\n\t" ++ "mov.l @r15+, r14\n\t" ++ ".balign 4\n\t" ++ "1: .long copy_to_stack - 0b \n\t" ++ ); +diff --git a/xpcom/reflect/xptcall/md/unix/xptcstubs_linux_sh.cpp b/xpcom/reflect/xptcall/md/unix/xptcstubs_linux_sh.cpp +new file mode 100644 +index 0000000..b40482d +--- /dev/null ++++ b/xpcom/reflect/xptcall/md/unix/xptcstubs_linux_sh.cpp +@@ -0,0 +1,262 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++/* ***** BEGIN LICENSE BLOCK ***** ++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 ++ * ++ * The contents of this file are subject to the Mozilla Public License Version ++ * 1.1 (the "License"); you may not use this file except in compliance with ++ * the License. You may obtain a copy of the License at ++ * http://www.mozilla.org/MPL/ ++ * ++ * Software distributed under the License is distributed on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ++ * for the specific language governing rights and limitations under the ++ * License. ++ * ++ * The Original Code is mozilla.org code. ++ * ++ * The Initial Developer of the Original Code is ++ * Netscape Communications Corporation. ++ * Portions created by the Initial Developer are Copyright (C) 1999 ++ * the Initial Developer. All Rights Reserved. ++ * ++ * Contributor(s): ++ * - Copyright (C) 2008-2009 STMicroelectronics ++ * ++ * Alternatively, the contents of this file may be used under the terms of ++ * either of the GNU General Public License Version 2 or later (the "GPL"), ++ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), ++ * in which case the provisions of the GPL or the LGPL are applicable instead ++ * of those above. If you wish to allow use of your version of this file only ++ * under the terms of either the GPL or the LGPL, and not to allow others to ++ * use your version of this file under the terms of the MPL, indicate your ++ * decision by deleting the provisions above and replace them with the notice ++ * and other provisions required by the GPL or the LGPL. If you do not delete ++ * the provisions above, a recipient may use your version of this file under ++ * the terms of any one of the MPL, the GPL or the LGPL. ++ * ++ * Based on the neutrino code, with some bug fixes and using the C preprocessor ++ * like all the other ports rather than the python script. ++ * ++ * ***** END LICENSE BLOCK ***** */ ++ ++/* Recommended reference guides are: ++ * ++ * + SH-4 CPU Core Architecture - http://www.st.com/resource/en/user_manual/cd00147165.pdf ++ * + SH-4 Software Manual - https://documentation.renesas.com/eng/products/mpumcu/rej09b0318_sh_4sm.pdf ++ * ++ */ ++ ++#include "xptcprivate.h" ++#include "xptiprivate.h" ++ ++const int c_int_register_params = 3; ++const int c_float_register_params = 8; ++ ++/* ++ Dispatch function for all stubs. ++ ++ The parameters to the original function are spread between 'data' which ++ is value of the stack pointer when the stub was called, intRegParams which ++ points to an area containing the values of r5, r6 and r7 when the stub was ++ called and floatRegParams which points to an area containing the values ++ of float registers fr4 to fr11 when the stub was called. ++ ++ */ ++extern "C" nsresult ++PrepareAndDispatch(nsXPTCStubBase* self, int methodIndex, PRUint32* data, ++ PRUint32 *intRegParams, float *floatRegParams) ++{ ++#define PARAM_BUFFER_COUNT 16 ++ ++ nsresult result = NS_ERROR_FAILURE; ++ int intCount = 0; ++ int floatCount = 0; ++ nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; ++ nsXPTCMiniVariant* dispatchParams = NULL; ++ const nsXPTMethodInfo* info; ++ PRUint8 paramCount; ++ PRUint8 i; ++ ++ NS_ASSERTION(self,"no self"); ++ ++ self->mEntry->GetMethodInfo(PRUint16(methodIndex), &info); ++ NS_ASSERTION(info,"no interface info"); ++ ++ paramCount = info->GetParamCount(); ++ ++ // setup variant array pointer ++ if(paramCount > PARAM_BUFFER_COUNT) ++ dispatchParams = new nsXPTCMiniVariant[paramCount]; ++ else ++ dispatchParams = paramBuffer; ++ NS_ASSERTION(dispatchParams,"no place for params"); ++ ++ for ( i = 0; i < paramCount; ++i ) { ++ const nsXPTParamInfo& param = info->GetParam(i); ++ nsXPTCMiniVariant* dp = &dispatchParams[i]; ++ nsXPTType type = param.IsOut() ? nsXPTType::T_I32 : param.GetType(); ++ ++ switch ( type ) { ++ case nsXPTType::T_I64: ++ case nsXPTType::T_U64: ++ // Was this passed in a register? ++ if ( (c_int_register_params - intCount) >= 2 ) { ++ dp->val.i64 = *((PRInt64 *) intRegParams); ++ intRegParams += 2; ++ intCount += 2; ++ } ++ else { ++ dp->val.i64 = *((PRInt64*) data); ++ data += 2; ++ } ++ break; ++ case nsXPTType::T_FLOAT: ++ // Was this passed in a register? ++ if ( floatCount < c_float_register_params ) { ++ dp->val.f = *floatRegParams; ++ ++floatCount; ++ ++floatRegParams; ++ } ++ else { ++ dp->val.f = *((float*) data); ++ ++data; ++ } ++ break; ++ case nsXPTType::T_DOUBLE: ++ // Was this passed in a register? ++ if ( (c_float_register_params - floatCount) >= 2 ) { ++ if ( floatCount & 1 != 0 ) { ++ ++floatCount; ++ ++floatRegParams; ++ } ++ dp->val.d = *(double *)floatRegParams; ++ floatCount += 2; ++ floatRegParams += 2; ++ } ++ else { ++ dp->val.d = *((double *) data); ++ data += 2; ++ } ++ break; ++ default: // 32-bit (non-float) value ++ // Was this passed in a register? ++ if ( intCount < c_int_register_params ) { ++ dp->val.i32 = *intRegParams; ++ ++intRegParams; ++ ++intCount; ++ } ++ else { ++ dp->val.i32 = *data; ++ ++data; ++ } ++ break; ++ } ++ } ++ ++ result = self->mOuter->CallMethod((PRUint16)methodIndex, info, dispatchParams); ++ ++ if(dispatchParams != paramBuffer) ++ delete [] dispatchParams; ++ ++ return result; ++} ++ ++ ++__asm__ ( ++ ".text\n" ++ ".little\n" ++ ++ ".globl SharedStub\n" ++ ".type SharedStub, @function\n" ++ "SharedStub:\n" ++ "mov r15, r1\n" ++ "mov.l r14,@-r15\n" ++ "sts.l pr,@-r15\n" ++ "mov r15, r14\n" ++ ++ /* Some parameters might have been passed in registers, so push them ++ * all onto the stack, PrepareAndDispatch can then work out whats what ++ * given method type information. ++ */ ++ "mov.l r7, @-r15\n" ++ "mov.l r6, @-r15\n" ++ "mov.l r5, @-r15\n" ++ "mov r15, r7\n" /* r7 = PrepareAndDispatch intRegParams param */ ++ ++ "fmov.s fr10, @-r15\n" ++ "fmov.s fr11, @-r15\n" ++ "fmov.s fr8, @-r15\n" ++ "fmov.s fr9, @-r15\n" ++ "fmov.s fr6, @-r15\n" ++ "fmov.s fr7, @-r15\n" ++ "fmov.s fr4, @-r15\n" ++ "fmov.s fr5, @-r15\n" ++ "mov.l r15, @-r15\n" /* PrepareAndDispatch floatRegParams param */ ++ ++ "mov r1, r6\n" /* r6 = PrepareAndDispatch data param */ ++ ++ "mov.l 1f, r1\n" ++ "bsrf r1\n" /* Note, following instruction is executed first*/ ++ "mov r2, r5\n" /* r5 = PrepareAndDispatch methodIndex param */ ++ "0:\n" ++ ++ "mov r14,r15\n" ++ "lds.l @r15+,pr\n" ++ "mov.l @r15+,r14\n" ++ "rts\n" ++ "nop\n" ++ ".align 2\n" ++ "1:\n" ++ ".long PrepareAndDispatch - 0b\n" ++ ); ++ ++#define STUB_ENTRY(n) \ ++__asm__( \ ++ ".text\n" \ ++ ".align 1 \n" \ ++ ".if " #n " < 10\n\t" \ ++ ".globl _ZN14nsXPTCStubBase5Stub" #n "Ev\n\t" \ ++ ".type _ZN14nsXPTCStubBase5Stub" #n "Ev,@function\n"\ ++ "_ZN14nsXPTCStubBase5Stub" #n "Ev:\n\t" \ ++ ".elseif " #n " < 100\n\t" \ ++ ".globl _ZN14nsXPTCStubBase6Stub" #n "Ev\n\t" \ ++ ".type _ZN14nsXPTCStubBase6Stub" #n "Ev,@function\n"\ ++ "_ZN14nsXPTCStubBase6Stub" #n "Ev:\n\t" \ ++ ".elseif " #n " < 1000\n\t" \ ++ ".globl _ZN14nsXPTCStubBase7Stub" #n "Ev\n\t" \ ++ ".type _ZN14nsXPTCStubBase7Stub" #n "Ev,@function\n"\ ++ "_ZN14nsXPTCStubBase7Stub" #n "Ev:\n\t" \ ++ ".else\n\t" \ ++ ".err \"stub number " #n " >= 1000 not yet supported\"\n\t" \ ++ ".endif\n\t" \ ++ "mov.l 1f, r1 \n" \ ++ ".if "#n" < 128 \n" \ ++ "braf r1 \n" \ ++ " mov #"#n",r2 \n" \ ++ ".elseif "#n" < 256 \n" \ ++ "mov #"#n", r2 \n" \ ++ "braf r1 \n" \ ++ " extu.b r2, r2 \n" \ ++ ".else \n" \ ++ "mov #"#n" & 0xff,r2 \n" \ ++ "extu.b r2, r2 \n" \ ++ "mov #"#n">>8, r3 \n" \ ++ "shll8 r3 \n" \ ++ "braf r1 \n" \ ++ " or r3, r2 \n" \ ++ ".endif \n" \ ++ "0: \n" \ ++ ".align 2\n" \ ++ "1:\n" \ ++ ".long SharedStub - 0b\n" \ ++ ); ++ ++ ++#define SENTINEL_ENTRY(n) \ ++nsresult nsXPTCStubBase::Sentinel##n() \ ++{ \ ++ NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \ ++ return NS_ERROR_NOT_IMPLEMENTED; \ ++} ++ ++#include "xptcstubsdef.inc" diff --git a/patches/porting/Disable-optimization-on-alpha-for-the-url-classifier.patch b/patches/porting/Disable-optimization-on-alpha-for-the-url-classifier.patch new file mode 100644 index 0000000000..186863013d --- /dev/null +++ b/patches/porting/Disable-optimization-on-alpha-for-the-url-classifier.patch @@ -0,0 +1,21 @@ +From: Mike Hommey +Date: Sun, 2 Nov 2008 17:56:24 +0100 +Subject: Disable optimization on alpha for the url-classifier component + +The use of this component leads to crashes when built with optimizations. +--- + browser/components/build/Makefile.in | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/browser/components/build/Makefile.in b/browser/components/build/Makefile.in +index 2387227..d5ca1ba 100644 +--- a/browser/components/build/Makefile.in ++++ b/browser/components/build/Makefile.in +@@ -6,3 +6,7 @@ include $(topsrcdir)/config/rules.mk + + # Ensure that we don't embed a manifest referencing the CRT. + EMBED_MANIFEST_AT = ++ ++ifeq ($(OS_TEST),alpha) ++MOZ_OPTIMIZE_FLAGS := -O0 ++endif diff --git a/patches/porting/Work-around-GCC-ICE-on-mips-i386-and-s390x.patch b/patches/porting/Work-around-GCC-ICE-on-mips-i386-and-s390x.patch new file mode 100644 index 0000000000..45cc6a7069 --- /dev/null +++ b/patches/porting/Work-around-GCC-ICE-on-mips-i386-and-s390x.patch @@ -0,0 +1,24 @@ +From: Mike Hommey +Date: Fri, 12 Jul 2019 18:28:34 +0900 +Subject: Work around GCC ICE on mips*, i386 and s390x + +Cherry picked from Firefox packaging. + +Closes: #931757 +--- + gfx/skia/skia/third_party/skcms/src/Transform_inl.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gfx/skia/skia/third_party/skcms/src/Transform_inl.h b/gfx/skia/skia/third_party/skcms/src/Transform_inl.h +index 7407c2a..7358520 100644 +--- a/gfx/skia/skia/third_party/skcms/src/Transform_inl.h ++++ b/gfx/skia/skia/third_party/skcms/src/Transform_inl.h +@@ -560,7 +560,7 @@ SI void sample_clut_16(const skcms_A2B* a2b, I32 ix, F* r, F* g, F* b) { + // GCC 7.2.0 hits an internal compiler error with -finline-functions (or -O3) + // when targeting MIPS 64, I think attempting to inline clut() into exec_ops(). + // s390x and i*86 also hit this with GCC 7.4 and -O2 +-#if 1 && defined(__GNUC__) && !defined(__clang__) && (defined(__mips64) || defined(__s390x__) || defined(__i586__) || defined(__i486__) || defined(__i386__)) ++#if 1 && defined(__GNUC__) && !defined(__clang__) && (defined(__mips__) || defined(__s390x__) || defined(__i586__) || defined(__i486__) || defined(__i386__)) + #define MAYBE_NOINLINE __attribute__((noinline)) + #else + #define MAYBE_NOINLINE diff --git a/patches/prefs/Don-t-auto-disable-extensions-in-system-directories.patch b/patches/prefs/Don-t-auto-disable-extensions-in-system-directories.patch new file mode 100644 index 0000000000..ac062dac58 --- /dev/null +++ b/patches/prefs/Don-t-auto-disable-extensions-in-system-directories.patch @@ -0,0 +1,21 @@ +From: Christoph Goehre +Date: Sat, 24 Mar 2012 11:54:43 +0100 +Subject: Don't auto-disable extensions in system directories + +--- + comm/mail/app/profile/all-thunderbird.js | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/comm/mail/app/profile/all-thunderbird.js b/comm/mail/app/profile/all-thunderbird.js +index 6a54d73..3590003 100644 +--- a/comm/mail/app/profile/all-thunderbird.js ++++ b/comm/mail/app/profile/all-thunderbird.js +@@ -131,7 +131,7 @@ pref("extensions.hotfix.certs.2.sha1Fingerprint", "39:E7:2B:7A:5B:CF:37:78:F9:5D + // Disable add-ons installed into the shared user and shared system areas by + // default. This does not include the application directory. See the SCOPE + // constants in AddonManager.jsm for values to use here +-pref("extensions.autoDisableScopes", 15); ++pref("extensions.autoDisableScopes", 3); + + // Enable add-ons installed and owned by the application, like the default theme. + pref("extensions.startupScanScopes", 4); diff --git a/patches/prefs/Set-javascript.options.showInConsole.patch b/patches/prefs/Set-javascript.options.showInConsole.patch new file mode 100644 index 0000000000..908af497e8 --- /dev/null +++ b/patches/prefs/Set-javascript.options.showInConsole.patch @@ -0,0 +1,31 @@ +From: Mike Hommey +Date: Sat, 8 Dec 2007 19:24:40 +0100 +Subject: Set javascript.options.showInConsole + +--- + modules/libpref/init/all.js | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js +index 782638b..6c1ed51 100644 +--- a/modules/libpref/init/all.js ++++ b/modules/libpref/init/all.js +@@ -1462,6 +1462,7 @@ pref("javascript.options.jit.full_debug_checks", false); + // memory, but makes things like Function.prototype.toSource() + // fail. + pref("javascript.options.discardSystemSource", false); ++pref("javascript.options.showInConsole", true); + + // Many of the the following preferences tune the SpiderMonkey GC, if you + // change the defaults here please also consider changing them in +@@ -1469,6 +1470,10 @@ pref("javascript.options.discardSystemSource", false); + + // JSGC_MAX_MALLOC_BYTES + // How much malloc memory can be allocated before triggering a GC, in MB. ++// This preference limits the memory usage of javascript. ++// If you want to change these values for your device, ++// please find Bug 417052 comment 17 and Bug 456721 ++// Comment 32 and Bug 613551. + pref("javascript.options.mem.high_water_mark", 128); + + // JSGC_MAX_BYTES diff --git a/patches/series b/patches/series new file mode 100644 index 0000000000..8dd582eaf5 --- /dev/null +++ b/patches/series @@ -0,0 +1,39 @@ +thunderbird-l10n/sl-change-Edit-Uredi-to-CTRL-E.patch +debian-hacks/Strip-version-number-from-application-before-installation.patch +debian-hacks/Add-another-preferences-directory-for-applications-p.patch +porting-kfreebsd-hurd/LDAP-support-building-on-GNU-kFreeBSD-and-GNU-Hurd.patch +porting/Disable-optimization-on-alpha-for-the-url-classifier.patch +fixes/Properly-launch-applications-set-in-HOME-.mailcap.patch +debian-hacks/Don-t-error-out-when-run-time-libsqlite-is-older-tha.patch +debian-hacks/stop-configure-if-with-system-bz2-was-passed-but-no-.patch +porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-kfreebsd.patch +debian-hacks/Don-t-register-plugins-if-the-MOZILLA_DISABLE_PLUGIN.patch +porting-kfreebsd-hurd/Allow-ipc-code-to-build-on-GNU-hurd.patch +fixes/Load-dependent-libraries-with-their-real-path-to-avo.patch +prefs/Set-javascript.options.showInConsole.patch +prefs/Don-t-auto-disable-extensions-in-system-directories.patch +fixes/Bug-628252-os2.cc-fails-to-compile-against-GCC-4.6-m.patch +fixes/fix-function-nsMsgComposeAndSend-to-respect-Replo.patch +porting-kfreebsd-hurd/ipc-chromium-fix-if-define-for-kFreeBSD-and-Hurd.patch +porting-kfreebsd-hurd/FTBFS-hurd-fixing-unsupported-platform-Hurd.patch +porting-kfreebsd-hurd/adding-missed-HURD-adoptions.patch +porting-m68k/Add-m68k-support-to-Thunderbird.patch +debian-hacks/use-icudt-b-l-.dat-depending-on-architecture.patch +debian-hacks/Build-against-system-libjsoncpp.patch +porting-sh4/Add-sh4-support-to-Thunderbird.patch +porting-armel/Bug-1463035-Remove-MOZ_SIGNAL_TRAMPOLINE.-r-darchons.patch +porting-armel/Avoid-using-vmrs-vmsr-on-armel.patch +debian-hacks/Downgrade-SQlite-version-to-3.27.2.patch +porting-armhf/Bug-1526653-Include-struct-definitions-for-user_vfp-and-u.patch +fixes/Allow-.js-preference-files-to-set-locked-prefs-with-lockP.patch +fixes/Bug-1556197-amend-Bug-1544631-for-fixing-mips32.patch +fixes/Bug-1560340-Only-add-confvars.sh-as-a-dependency-to-confi.patch +debian-hacks/Work-around-Debian-bug-844357.patch +debian-hacks/Set-program-name-from-the-remoting-name.patch +debian-hacks/Use-remoting-name-for-call-to-gdk_set_program_class.patch +porting/Work-around-GCC-ICE-on-mips-i386-and-s390x.patch +porting-ppc64el/work-around-a-build-failure-with-clang-on-ppc64el.patch +porting-armhf/Don-t-use-LLVM-internal-assembler-on-armhf.patch +porting-arm/Reduce-memory-usage-while-linking-on-arm-el-hf-platforms.patch +debian-hacks/Make-Thunderbird-build-reproducible.patch +fixes/Bug-1531309-Don-t-use-__PRETTY_FUNCTION__-or-__FUNCTION__.patch diff --git a/patches/thunderbird-l10n/sl-change-Edit-Uredi-to-CTRL-E.patch b/patches/thunderbird-l10n/sl-change-Edit-Uredi-to-CTRL-E.patch new file mode 100644 index 0000000000..facba94fa6 --- /dev/null +++ b/patches/thunderbird-l10n/sl-change-Edit-Uredi-to-CTRL-E.patch @@ -0,0 +1,22 @@ +From: Christoph Goehre +Date: Mon, 5 Sep 2011 19:21:25 +0200 +Subject: sl: change Edit (Uredi) to CTRL+E + +Closes: #601331 +--- + thunderbird-l10n/sl/chrome/sl/locale/sl/communicator/utilityOverlay.dtd | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/thunderbird-l10n/sl/chrome/sl/locale/sl/communicator/utilityOverlay.dtd b/thunderbird-l10n/sl/chrome/sl/locale/sl/communicator/utilityOverlay.dtd +index 10a1e0a..f0c5f1f 100644 +--- a/thunderbird-l10n/sl/chrome/sl/locale/sl/communicator/utilityOverlay.dtd ++++ b/thunderbird-l10n/sl/chrome/sl/locale/sl/communicator/utilityOverlay.dtd +@@ -10,7 +10,7 @@ + + + +- ++ + + + diff --git a/repack.py b/repack.py new file mode 100755 index 0000000000..47b1171ad6 --- /dev/null +++ b/repack.py @@ -0,0 +1,204 @@ +#!/usr/bin/python3 + +from optparse import OptionParser +import fnmatch +import tarfile +import io +import re +import os +import sys +import email +import urllib.request, urllib.error, urllib.parse +from urllib.parse import urlparse + +class URLFile(object): + '''Simple proxy to urllib2.urlopen, that responds to seek only if + it's called before read. This is enough for tarfile to be happy''' + + def __init__(self, url): + self.file = urllib.request.urlopen(url) + + def seek(self, offset, whence = os.SEEK_SET): + if whence != os.SEEK_SET or offset != 0 or self.read == self._read: + raise "unsupported" + + def _read(self, size = -1): + return self.file.read(size) + + def read(self, size = -1): + self.read = self._read + return self._read(size) + + def close(self): + self.file.close() + +def dirname(filespec): + '''Returns os.path.dirname if a file, and '' if an url''' + if urlparse(filespec).scheme: + return '' + return os.path.dirname(filespec) + +class TarFilterList(object): + def __init__(self, filename): + self.patterns = {} + for filt in open(filename).readlines(): + f = filt.strip().split(None, 1) + if len(f) == 1: + [pat] = f + cmd = None + else: + [pat, cmd] = f + + pat = pat.split(os.sep) + self.add_pattern(pat, self.patterns, cmd) + + def add_pattern(self, pat, patterns, cmd): + if re.search(r'[\[\?\*]', pat[0]): + if not '*' in patterns: + patterns['*'] = [] + patterns['*'].append([os.sep.join(pat), cmd, False]) + else: + if not pat[0] in patterns: + patterns[pat[0]] = {} + if len(pat) > 2: + self.add_pattern(pat[1:], patterns[pat[0]], cmd) + else: + if not '*' in patterns[pat[0]]: + patterns[pat[0]]['*'] = [] + patterns[pat[0]]['*'].append([os.sep.join(pat[1:]), cmd, False]) + + def match(self, name): + name = name.split(os.sep)[1:] + if len(name) == 0: + return False + return self._match(name, self.patterns) + + def _match(self, name, patterns): + if len(name) > 1 and name[0] in patterns: + cmd = self._match(name[1:], patterns[name[0]]) + if cmd != False: + return cmd + if '*' in patterns: + for pat in patterns['*']: + if fnmatch.fnmatch(name[0], pat[0]) or fnmatch.fnmatch(os.sep.join(name), pat[0]): + pat[2] = True + return pat[1] + return False + + def unused(self, patterns=None, root=''): + result = [] + if root: + root += '/' + if not patterns: + patterns = self.patterns + for pat in patterns: + if pat != '*': + result += self.unused(patterns[pat], root + pat) + else: + for p in patterns[pat]: + if not p[2]: + result.append(root + p[0]) + return result + +def file_extension(name): + return os.path.splitext(name)[1][1:] + +def filter_tar(orig, new, filt): + def u8(x): + return x.decode('utf-8') + + filt = TarFilterList(filt) + if urlparse(orig).scheme: + tar = tarfile.open(orig, "r:" + file_extension(orig), URLFile(orig)) + else: + tar = tarfile.open(orig, "r:" + file_extension(orig)) + new_tar = tarfile.open(new + ".new", "w:" + file_extension(new)) + + while True: + info = tar.next() + if not info: + break + do_filt = filt.match(info.name) + if do_filt == None: + print("Removing %s" % (info.name), file=sys.stderr) + continue + + if info.isfile(): + file = tar.extractfile(info) + if do_filt: + print("Filtering %s" % (info.name), file=sys.stderr) + orig = file + file = io.BytesIO() + the_filt = lambda l: u8(l) + if do_filt[0].isalpha(): + f = do_filt.split(do_filt[1]) + if f[0] == 's': + the_filt = lambda l: re.sub(f[1], f[2], u8(l)) + else: + f = do_filt.split(do_filt[0]) + if f[2] == 'd': + the_filt = lambda l: "" if re.search(f[1], u8(l)) else u8(l) + file.writelines([x.encode('utf-8') for x in map(the_filt, orig.readlines())]) + file.seek(2, 0) + info.size = file.tell() + file.seek(0); + new_tar.addfile(info, file) + else: + new_tar.addfile(info) + + tar.close() + new_tar.close() + os.rename(new_tar.name, new) + unused = filt.unused() + if unused: + print('Unused filters:') + print('', '\n '.join(unused)) + exit(1) + +def get_package_name(): + control = os.path.join(os.path.dirname(__file__), "control") + return email.parser.Parser().parse(open(control), headersonly=True)["Source"] + + +def main(): + parser = OptionParser("%prog [options] tarball") + parser.add_option("-u", "--upstream-version", dest="upstream_version", + help="define upstream version number to use when creating the file", + metavar="VERSION") + parser.add_option("-f", "--filter", dest="filter", + help="use the given filter list", metavar="FILE") + parser.add_option("-p", "--package", dest="package", + help="use the given package name", metavar="NAME") + parser.add_option("-c", "--compression", dest="compression", + help="use the given compression for the new tarball") + (options, args) = parser.parse_args() + + if len(args) < 1: + parser.error("Too few arguments! You may want to use option '--help' for usage first?") + return + if len(args) > 1: + parser.error("Too many arguments! You may want to use option '--help' for usage first?") + return + + if not options.upstream_version: + parser.error("Need an upstream version") + return + + if not options.filter: + options.filter = os.path.join(os.path.dirname(__file__), "source.filter") + if not options.package: + options.package = get_package_name() + + if os.path.islink(args[0]): + orig = os.path.realpath(args[0]) + new_file = args[0] + else: + orig = args[0] + compression = options.compression or file_extension(orig) + new_file = options.package + "_" + options.upstream_version + ".orig.tar." + compression + new_file = os.path.realpath(os.path.join(dirname(orig), new_file)) + print(orig, new_file) + filter_tar(orig, new_file, options.filter) + +if __name__ == '__main__': + main() diff --git a/rules b/rules new file mode 100755 index 0000000000..99d9874e61 --- /dev/null +++ b/rules @@ -0,0 +1,244 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +# Uncomment this to turn on verbose mode. +# export DH_VERBOSE=1 + +# checking the release type, if $(RELEASE)=UNRELEASED we won't build +# the thunderbird-dbgsym package +include /usr/share/dpkg/pkg-info.mk +RELEASE := $(DEB_DISTRIBUTION) + +ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) + NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) +endif + +ICU_DATA_FILE := $(shell basename config/external/icu/data/icud*.dat) +ICU_BUILD := $(shell if ! grep -qs -e "--with-system-icu" debian/mozconfig.default; then echo YES || NO; fi) +ICU_BUILD_DIR := $(CURDIR)/obj-thunderbird/obj-icu +ICU_BUILD_CONFIGURE := --with-data-packaging=archive --enable-static --disable-layoutex --disable-shared --disable-extras --disable-icuio --disable-layout --disable-tests --disable-samples --disable-strict +ICU_BUILD_CPPFLAGS := "-DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1 -DUCONFIG_NO_LEGACY_CONVERSION -DUCONFIG_NO_TRANSLITERATION -DUCONFIG_NO_REGULAR_EXPRESSIONS -DUCONFIG_NO_BREAK_ITERATION -DU_CHARSET_IS_UTF8" + +THUNDERBIRD_VERSION=$(shell tail -1 comm/mail/config/version.txt) +DEB_AUTO_UPDATE_AUTOCONF=2.13 + +# build directory used for building the thunderbird-l10n files +THUNDERBIRD_L10N_BUILDDIR=debian/thunderbird-l10n-build + +# Iceowl/Lightning version, note this is different from the TB version! +LIGHTNING_VERSION := $(shell python $(CURDIR)/comm/calendar/lightning/build/makeversion.py ${THUNDERBIRD_VERSION}) + +# ID of the l10n language packs from upstream, need to match the application.id +# in thunderbird-l10n/$LANG/manifest.json +export MOZ_LANGPACK_ID = $(shell grep MOZ_LANGPACK_EID comm/mail/locales/Makefile.in | cut -f2 -d @) + +DPKG_EXPORT_BUILDFLAGS = 1 +include /usr/share/dpkg/buildflags.mk +include /usr/share/dpkg/architecture.mk + +# currently needed as workaround for GCC-6 built +# see https://bugzilla.mozilla.org/show_bug.cgi?id=1251576 +# and https://bugzilla.mozilla.org/show_bug.cgi?id=1245783#c31 +CFLAGS += -fno-delete-null-pointer-checks +# -fno-schedule-insns2 -fno-lifetime-dse +CXXFLAGS += -fno-delete-null-pointer-checks +# -fno-schedule-insns2 -fno-lifetime-dse + +# special CFLAGS for various platforms +ifeq ($(DEB_BUILD_ARCH),armel) + CFLAGS += -D__ARM_PCS + LDFLAGS += -Wl,-z,muldefs +endif + +# Reduce memory usage of the linker at the expense of processing time +# This should help on lower-end architectures like arm and mips, which +# spend an immense amount of time swapping. +LDFLAGS += -Wl,--reduce-memory-overheads +LDFLAGS += -Wl,--no-keep-memory +LDFLAGS += -Wl,--as-needed + +# Make the linker generate compressed debug sections. dh_strip would do +# the same anyways, but it allows elfhack to work in combination with +# unstripped binaries when they would normally be larger than 2GiB. +# Doing this only on 64bit architectures. +ifeq (64,$(DEB_BUILD_ARCH_BITS)) + LDFLAGS += -Wl,--compress-debug-sections=zlib +endif + +# Add execution time and memory usage stats in the logs +LDFLAGS += -Wl,--stats + +# Using the timestamp for MOZ_BUILD_DATE from the file './sourcestamp.txt' +# which is set by Mozilla while creating the release. +# This ensures we have a one-to-one date across the various package builds +# within Debian for one upstream version. This is important for user which +# are performing a dist-upgrade to a new release. +export MOZ_BUILD_DATE := ${shell head -n1 $(CURDIR)/sourcestamp.txt} +export MOZCONFIG=$(shell pwd)/mozconfig.thunderbird +export MOZILLA_OFFICIAL=1 +export DEB_BUILD_GNU_TYPE +export DEB_HOST_GNU_TYPE +export DEB_BUILD_OPTIONS +# Some Debian build tools clear out some variables +export SHELL=/bin/bash +# Work around https://github.com/rust-lang/cargo/issues/7147 +export CARGO_HOME=$(CURDIR)/debian/.cargo + +%: + dh $@ + +build: + dh $@ + +override_dh_auto_clean: + dh_auto_clean --builddirectory=obj-thunderbird + find -type f -name "*.pyc" -exec rm {} \; + rm -rf third_party/python/psutil/tmp + rm -f configure old-configure js/src/configure js/src/old-configure mozconfig.* + # needed for thunderbird-l10n + rm -rf $(THUNDERBIRD_L10N_BUILDDIR) + rm -rf $(CARGO_HOME) + +override_dh_auto_configure: + # run autoconf for all configure files + if [ "Z$(DEB_AUTO_UPDATE_AUTOCONF)" != Z ] || [ ! -e $(CURDIR)/configure ]; then \ + cd $(CURDIR) && `which autoconf$(DEB_AUTO_UPDATE_AUTOCONF) || which autoconf`; fi + if [ "Z$(DEB_AUTO_UPDATE_AUTOCONF)" != Z ] || [ ! -e $(CURDIR)/js/src/configure ]; then \ + cd $(CURDIR)/js/src && `which autoconf$(DEB_AUTO_UPDATE_AUTOCONF) || which autoconf`; fi + # copy the mozconfig files + cp debian/mozconfig.* . + # Disable debug symbols when building on 32-bits machines, because + # a) the rust compiler can't deal with it in the available address + # space, and b) the linker can't deal with it in the available address + # space either. +ifeq (32,$(DEB_BUILD_ARCH_BITS)) + echo 'ac_add_options --disable-debug-symbols' >> mozconfig.default +endif + echo 'mk_add_options MOZ_OBJDIR=$(CURDIR)/obj-thunderbird' >> mozconfig.thunderbird + echo 'ac_add_options --prefix=$(CURDIR)/debian/tmp/usr' >> mozconfig.default + @echo "rebuild ICU data file needed: $(ICU_BUILD)" +ifeq ($(ICU_BUILD),YES) + #################################################################### + # (re)build upstream icudt*.dat due disabled usage of system files # + #################################################################### + rm -f $(CURDIR)/config/external/icu/data/$(ICU_DATA_FILE) + mkdir -p $(ICU_BUILD_DIR) + cd $(ICU_BUILD_DIR) ;\ + $(CURDIR)/intl/icu/source/configure $(ICU_BUILD_CONFIGURE) CPPFLAGS=$(ICU_BUILD_CPPFLAGS) ;\ + $(MAKE) VERBOSE=1 -j$(NUMJOBS) + @ICU_DATA_FILE_CREATED=$$(basename $(ICU_BUILD_DIR)/data/out/icud*.dat) ;\ + test -f $(ICU_BUILD_DIR)/data/out/$$ICU_DATA_FILE_CREATED && cp $(ICU_BUILD_DIR)/data/out/$$ICU_DATA_FILE_CREATED $(CURDIR)/config/external/icu/data ;\ + echo "created new ICU_DATA_FILE in $(CURDIR)/config/external/icu/data/$$ICU_DATA_FILE_CREATED" +endif + # configure the various build settings + # thunderbird, lightning + DIST= ./mach -v configure + # workaround: remove "'" around some entries + sed -i "/'/g" obj-thunderbird/backend.mk + sed -i "/'/g" obj-thunderbird/toolkit/library/rust/backend.mk + +override_dh_auto_build: + # building the stuff + ./mach -v build + # build thunderbird-l10n + mkdir -p $(THUNDERBIRD_L10N_BUILDDIR) + cd $(CURDIR)/thunderbird-l10n ;\ + for XPI in *; do \ + locale=`basename $${XPI}` ;\ + USED_LANGPACK_ID=`grep langpack- $${XPI}/manifest.json | tr '"' ' ' | awk '{print $$3}' | cut -f2-3 -d @` ;\ + if [ "$${USED_LANGPACK_ID}" != "$${MOZ_LANGPACK_ID}" ]; then \ + echo "MOZ_LANGPACK_ID mismatch! '$${USED_LANGPACK_ID}' != '$${MOZ_LANGPACK_ID}'" ;\ + echo "thunderbird-l10n l10n source '$${XPI}' uses a different MOZ_LANGPACK_ID than defined in $(CURDIR)/comm/mail/locales/Makefile.in!";\ + exit 1 ;\ + else \ + $(CURDIR)/debian/xpi-pack.sh $${XPI} ../$(THUNDERBIRD_L10N_BUILDDIR)/langpack-$${locale}@$${MOZ_LANGPACK_ID}.xpi ;\ + fi \ + done + +override_dh_auto_install: +ifneq (,$(filter mips,$(DEB_BUILD_ARCH))) + sed -i '/"javascript.options.\(baselinejit\|ion\)"/s/true/false/' obj-thunderbird/dist/bin/greprefs.js +endif + # install thunderbird into temp install folder + ./mach -v install + # install, symlinking thunderbird-l10n packages + cd $(CURDIR)/thunderbird-l10n ;\ + for LANG in *; do \ + locale=`basename $${LANG}` ;\ + lowercase_locale=`echo $${locale} | tr 'A-Z' 'a-z'` ;\ + echo "preparing and working on 'thunderbird-l10n-$${lowercase_locale} (langpack-$${locale}@$${MOZ_LANGPACK_ID}.xpi)" ;\ + mkdir -p $(CURDIR)/debian/thunderbird-l10n-$${lowercase_locale}/usr/lib/thunderbird/extensions/ ;\ + install -D -m 644 ../$(THUNDERBIRD_L10N_BUILDDIR)/langpack-$${locale}@$${MOZ_LANGPACK_ID}.xpi $(CURDIR)/debian/thunderbird-l10n-$${lowercase_locale}/usr/share/thunderbird/extensions/langpack-$${locale}@$${MOZ_LANGPACK_ID}.xpi ;\ + ln -sf /usr/share/thunderbird/extensions/langpack-$${locale}@$${MOZ_LANGPACK_ID}.xpi \ + $(CURDIR)/debian/thunderbird-l10n-$${lowercase_locale}/usr/lib/thunderbird/extensions/langpack-$${locale}@$${MOZ_LANGPACK_ID}.xpi ;\ + done + # install lightning-l10n + # Since 60.2.1 we install the Lightning l10n files into the thunderbird-l10n package! + cd $(CURDIR)/lightning-l10n ;\ + for LANG in *; do \ + locale=`basename $${LANG}` ;\ + lowercase_locale=`echo $${locale} | tr 'A-Z' 'a-z'` ;\ + echo "working on 'lightning-l10n-$${lowercase_locale}' (finally within thunderbird-l10n-$${lowercase_locale})" ;\ + mkdir -p $(CURDIR)/debian/thunderbird-l10n-$${lowercase_locale}/usr/share/lightning ;\ + cp -a $${locale}/* $(CURDIR)/debian/thunderbird-l10n-$${lowercase_locale}/usr/share/lightning ;\ + done + dh_bash-completion + +override_dh_install-arch: + # in case of a pre-builded and installed icudt*.dat file pick it up + if [ -f debian/tmp/usr/lib/thunderbird/$(ICU_DATA_FILE) ]; then \ + if ! grep -qs $(ICU_DATA_FILE) debian/thunderbird.install ; then \ + echo "debian/tmp/usr/lib/thunderbird/$(ICU_DATA_FILE)" >> debian/thunderbird.install ;\ + fi \ + fi + dh_install + # install apparmor profile + cp debian/apparmor/usr.bin.thunderbird debian/thunderbird/etc/apparmor.d/usr.bin.thunderbird + dh_apparmor --profile-name=usr.bin.thunderbird -pthunderbird + +override_dh_install-indep: + dh_install + # prepare lightning + mkdir -p debian/lightning/usr/share/lightning + LIGHTNING=`find -type f -name "lightning*.xpi"` &&\ + unzip -d debian/lightning/usr/share/lightning $(CURDIR)/$$LIGHTNING + # remove executable rights on *.js, *.png, *.xul files + find debian/lightning*/ -type f \( -name "*.dtd" -o -name "*.js" -o -name "*.png" -o -name "*.properties" -o -name "*.xul" \) -exec chmod 644 {} \; + find debian/thunderbird-l10n*/ -type f \( -name "*.dtd" -o -name "*.js" -o -name "*.png" -o -name "*.properties" -o -name "*.xul" \) -exec chmod 644 {} \; + # sometimes there are temporary build files in lightning + @echo " --> searching for temporary build files in 'lightning' ..." + @for i in `find debian/lightning/ -name ".mkdir.done*"`; do echo remove $$i && rm $$i; done + find debian/lightning/usr/share/lightning -newermt '@$(SOURCE_DATE_EPOCH)' -print0 | \ + xargs -0r touch --no-dereference --date='@$(SOURCE_DATE_EPOCH)' + for LANG in lightning-l10n/*; do \ + locale=`basename $${LANG}`; \ + echo "locale calendar $${locale} chrome/calendar-$${locale}/locale/$${locale}/calendar/" >> debian/lightning/usr/share/lightning/chrome.manifest ;\ + echo "locale lightning $${locale} chrome/lightning-$${locale}/locale/$${locale}/lightning/" >> debian/lightning/usr/share/lightning/chrome.manifest ;\ + done + +override_dh_strip: + if [ "$(RELEASE)" != "UNRELEASED" ]; then \ + dh_strip --automatic-dbgsym ;\ + else \ + dh_strip --no-automatic-dbgsym ;\ + fi + +override_dh_shlibdeps: + dh_shlibdeps -a -l $(CURDIR)/debian/tmp/usr/lib/thunderbird + +override_dh_builddeb: + # just build all packages if there is no 'UNRELEASED' within the changelog + # found, otherwise skip the thunderbird-dbgsym package, it isn't there + if [ "$(RELEASE)" != "UNRELEASED" ]; then \ + dh_builddeb ;\ + else \ + dh_builddeb -pthunderbird ;\ + dh_builddeb -plightning ;\ + for package in `grep -e \ + 'Package: thunderbird-l10n\|Package: lightning-l10n' debian/control | awk '{print $$2;}'`; do \ + dh_builddeb -p$$package ;\ + done ;\ + sed -i '/thunderbird-dbgsym/d' debian/files ;\ + fi + +.PHONY: build diff --git a/source.filter b/source.filter new file mode 100644 index 0000000000..bfdb67d2dd --- /dev/null +++ b/source.filter @@ -0,0 +1,448 @@ +# Lines that are commented out are files that are needed later while building. +# Don't remove those files! +accessible/tests/mochitest/jsat/test_output_mathml.html +browser/app/profile/firefox.js +browser/base/content/test/general/browser_bug477014.js +browser/base/content/test/general/browser_contentAreaClick.js +browser/base/content/test/general/browser_tabkeynavigation.js +# browser/base/content/test/urlbar/browser_action_searchengine_alias.js +browser/components/enterprisepolicies/tests/browser/browser_policy_block_set_desktop_background.js +browser/components/enterprisepolicies/tests/browser/browser_policy_bookmarks.js +browser/components/extensions/test/browser/browser_ext_contextMenus_icons.js +# browser/components/extensions/test/browser/browser_ext_themes_icons.js +browser/components/migration/tests/unit/test_IE7_passwords.js +browser/components/translation/cld2/cld-worker.js +browser/components/translation/test/unit/test_cld2.js +browser/extensions/formautofill/addressmetadata/*.js +browser/extensions/formautofill/content/*.js +browser/extensions/pdfjs/content/build/*.js +browser/extensions/pdfjs/content/web/*.js +build/pgo/blueprint/valid.png +build/pgo/js-input/sunspider/string-tagcloud.html +build/pgo/js-input/sunspider/string-unpack-code.html +build/win32/vswhere.exe +#comm/editor/ui/texzilla/content/TeXZilla.js +#comm/im/themes/messages/bubbles/Footer.html +#comm/mail/app/profile/all-thunderbird.js +#comm/mail/components/compose/content/cloudAttachmentLinkManager.js +#comm/mail/components/im/messages/bubbles/Footer.html +comm/mail/test/mozmill/content-policy/test-general-content-policy.js +# comm/mail/test/resources/mozmill/docs/_build/html/_static/jquery.js +# comm/mail/test/resources/mozmill/mozmill/extension/content/editor/bespin/BespinEmbedded.js +# comm/mail/test/resources/mozmill/mozmill/extension/content/editor/bespin/BespinMain.js +# comm/mail/test/resources/mozmill/mozmill/extension/content/editor/bespin/BespinWorker.js +comm/mailnews/addrbook/test/unit/test_nsIAbCard.js +comm/mailnews/base/test/unit/test_compactColumnSave.js +comm/other-licenses/7zstub +configure +#devtools/client/debugger/new/debugger.js +#devtools/client/debugger/new/parser-worker.js +#devtools/client/debugger/new/pretty-print-worker.js +#devtools/client/debugger/new/search-worker.js +# devtools/client/debugger/new/test/mochitest/examples/sourcemaps-reload/v1.bundle.js +# devtools/client/debugger/new/test/mochitest/examples/sourcemaps-reload/v2.bundle.js +# devtools/client/debugger/new/test/mochitest/examples/sourcemaps3/bundle.js +#devtools/client/inspector/markup/test/browser_markup_image_tooltip_mutations.js +devtools/client/inspector/markup/test/lib_react_dom_15.4.1.js +devtools/client/inspector/markup/test/lib_react_with_addons_15.4.1.js +#devtools/client/inspector/shared/test/browser_styleinspector_tooltip-background-image.js +#devtools/client/inspector/shared/test/browser_styleinspector_tooltip-multiple-background-images.js +#devtools/client/netmonitor/test/head.js +#devtools/client/shared/demangle.js +#devtools/client/shared/source-map/index.js +#devtools/client/shared/source-map/worker.js +#devtools/client/shared/test +#devtools/client/shared/vendor/WasmParser.js +#devtools/client/shared/vendor/dagre-d3.js +#devtools/client/shared/vendor/jszip.js +devtools/client/shared/vendor/react-dom-dev.js +devtools/client/shared/vendor/react-dom-server-dev.js +#devtools/client/shared/vendor/react-dom-server.js +#devtools/client/shared/vendor/react-dom.js +#devtools/client/shared/vendor/react-prop-types-dev.js +#devtools/client/shared/vendor/react-prop-types.js +#devtools/client/shared/vendor/react-redux.js +#devtools/client/shared/vendor/react-test-renderer-shallow.js +#devtools/client/shared/vendor/redux.js +#devtools/client/sourceeditor/codemirror/codemirror.bundle.js +#devtools/client/sourceeditor/codemirror/lib/codemirror.js +#devtools/client/sourceeditor/tern/ecma5.js +#devtools/server/actors/utils/automation-timeline.js +# devtools/server/tests/unit/babel_and_browserify_script_with_source_map.js +#devtools/server/tests/unit/test_sourcemaps-09.js +#devtools/shared/acorn/acorn.js +#devtools/shared/acorn/acorn_loose.js +#devtools/shared/acorn/walk.js +#devtools/shared/sourcemap/tests/unit/test_source_node.js +dom/base/crashtests/561981-1-iframe.xhtml +dom/base/crashtests/827190.html +dom/base/crashtests/849727.html +dom/base/crashtests/xhr_html_nullresponse.html +dom/base/test/reftest/test_bug920877.html +dom/base/test/test_bug650776.html +dom/base/test/test_data_uri.html +#dom/canvas/test/crash/test_createImageBitmap-video.html +#dom/canvas/test/test_canvas.html +dom/canvas/test/webgl-conf/checkout/conformance/extensions/webgl-compressed-texture-s3tc.html +dom/canvas/test/webgl-conf/checkout/conformance/glsl/misc/glsl-long-variable-names.html +dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/attrib-location-length-limits.html +dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/shader-with-1024-character-define.html +dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/shader-with-1024-character-identifier.frag.html +dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/shader-with-1025-character-define.html +dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/shader-with-1025-character-identifier.frag.html +dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/uniform-location-length-limits.html +dom/canvas/test/webgl-conf/checkout/deqp/deqp-deps.js +dom/canvas/test/webgl-conf/checkout/deqp/framework/referencerenderer/rrFragmentOperations.js +dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fDefaultVertexAttributeTests.js +#dom/encoding/test/test_BOMEncoding.js +#dom/encoding/test/test_TextDecoder.js +#dom/encoding/test/unit/test_big5.js +#dom/encoding/test/unit/test_euc-jp.js +#dom/encoding/test/unit/test_euc-kr.js +#dom/encoding/test/unit/test_gbk.js +#dom/encoding/test/unit/test_iso-2022-jp.js +#dom/encoding/test/unit/test_misc.js +#dom/encoding/test/unit/test_shift_jis.js +dom/events/test/pointerevents/pointerevent_support.js +dom/html/reftests/toblob-todataurl/sample.js +dom/html/test/bug445004-outer-write.html +#dom/html/test/test_bug582412-2.html +#dom/html/test/test_iframe_sandbox_general.html +#dom/imptests/html/js/builtins/Math.maxmin.js +#dom/indexedDB/test/test_filehandle_write_read_data.html +#dom/indexedDB/test/unit/test_filehandle_append_read_data.js +#dom/indexedDB/test/unit/test_filehandle_append_read_data.js +#dom/indexedDB/test/unit/test_snappyUpgrade.js +#dom/json/test/unit/test_decode_long_input.js +#dom/media/test/test_decoder_disable.html +dom/media/tests/crashtests/1367930_1.html +dom/media/tests/crashtests/1367930_2.html +dom/media/tests/crashtests/855796.html +dom/media/tests/crashtests/863929.html +#dom/push/test/xpcshell/test_crypto.js +dom/security/test/general/test_allow_opening_data_pdf.html +dom/tests/mochitest/localstorage/frameQuota.html +dom/tests/mochitest/localstorage/frameQuotaSessionOnly.html +gfx/skia/skia/src/compute/hs/cl/intel/gen8/u32/hs_kernels.bin +gfx/skia/skia/src/compute/hs/cl/intel/gen8/u64/hs_kernels.bin +editor/libeditor/tests/browserscope/lib/richtext/richtext/js/range.js +#editor/libeditor/tests/test_bug520189.html +#editor/libeditor/tests/test_inline_style_cache.html +#image/test/reftest/pngsuite-transparency +image/test/reftest/reftest.list /pngsuite-transparency/d +#image/test/unit/test_async_notification_animated.js +#image/test/unit/test_moz_icon_uri.js +intl/uconv/tests/test_long_doc.html +intl/uconv/tests/unit +js/src/configure +js/src/old-configure +js/src/devtools/rootAnalysis/annotations.js +js/src/jit-test/lib/bullet.js +js/src/jit-test/lib/mandelbrot-results.js +js/src/jit-test/tests +js/src/octane/box2d.js +js/src/octane/pdfjs.js +js/src/octane/regexp.js +js/src/octane/typescript-input.js +js/src/tests/non262/RegExp/regress-209067.js +js/src/tests/non262/RegExp/regress-307456.js +js/src/tests/non262/jit/regress-452498-01.js +js/src/tests/non262/regress/regress-243174.js +js/src/tests/non262/regress/regress-274888.js +js/src/tests/non262/regress/regress-280769.js +js/src/tests/non262/regress/regress-311629.js +js/src/tests/test262/built-ins/Array/prototype/reverse/S15.4.4.8_A2_T1.js +js/src/tests/test262/built-ins/Array/prototype/reverse/S15.4.4.8_A2_T2.js +js/src/tests/test262/built-ins/Array/prototype/reverse/S15.4.4.8_A2_T3.js +js/src/tests/test262/built-ins/RegExp/prototype/exec/S15.10.6.2_A4_T12.js +js/src/tests/test262/built-ins/String/S15.5.5.1_A5.js +js/src/tests/test262/built-ins/String/prototype/charAt/S15.5.4.4_A1_T1.js +js/src/tests/test262/built-ins/String/prototype/charAt/S15.5.4.4_A1_T2.js +js/src/tests/test262/built-ins/String/prototype/charCodeAt/S15.5.4.5_A1_T1.js +js/src/tests/test262/built-ins/String/prototype/concat/S15.5.4.6_A1_T10.js +js/src/tests/test262/built-ins/String/prototype/constructor/S15.5.4.1_A1_T2.js +js/src/tests/test262/built-ins/String/prototype/split/S15.5.4.14_A1_T13.js +js/src/tests/test262/built-ins/String/prototype/split/S15.5.4.14_A2_T7.js +js/src/tests/test262/built-ins/encodeURIComponent/S15.1.3.4_A4_T2.js +js/src/tests/test262/language/expressions/delete/S8.12.7_A3.js +js/src/tests/test262/language/expressions/exponentiation/bigint-arithmetic.js +js/src/tests/test262/language/types/string/S8.4_A6.1.js +js/src/tests/test262/language/types/string/S8.4_A6.2.js +layout/base/crashtests/378325-1.html +#layout/base/tests/test_scroll_snapping.html +layout/doc +layout/generic/crashtests/simple_blank.swf +layout/generic/crashtests/text-overflow-form-elements.html +layout/mathml/tests/stretchy-and-large-operators.js +layout/reftests/bugs/256180-6.html +layout/reftests/bugs/424465-1.html +layout/reftests/font-loading-api/src-list-data-1.html +layout/reftests/svg/nesting-invalid-01.js +layout/style/crashtests/404470-1.html +layout/style/test/test_shorthand_property_getters.html +layout/tools/reftest/reftest-analyzer-structured.xhtml +layout/tools/reftest/reftest-analyzer.xhtml +mobile/android/components/extensions/test/mochitest/head.js +mobile/android/tests/browser/chrome/tp5/163.com/163.wrating.com/a1.js +mobile/android/tests/browser/chrome/tp5/163.com/analytics.163.com/ntes.js +mobile/android/tests/browser/chrome/tp5/163.com/img3.126.net/yodaoimages/pack.r091221/scripts/autocomplete.163.165290.js +mobile/android/tests/browser/chrome/tp5/163.com/img3.cache.netease.com/cnews/js/ntes_jslib_1.x.js +mobile/android/tests/browser/chrome/tp5/163.com/show.mediav.com/s@type=1&db=mediav&pub=118_2620_36413&cus=0_0_0_0_0&wh=360x100&btype=1&js=1.html +mobile/android/tests/browser/chrome/tp5/163.com/www.163.com/index.html +mobile/android/tests/browser/chrome/tp5/163.com/zjs.ipinyou.com/2011032517331513260_2342_190180.js +mobile/android/tests/browser/chrome/tp5/baidu.com/www.baidu.com/s@wd=mozilla.html +mobile/android/tests/browser/chrome/tp5/baidu.com/www.baidu.com/user/js/u.js +mobile/android/tests/browser/chrome/tp5/bbc.co.uk/edge.quantserve.com/quant.js +mobile/android/tests/browser/chrome/tp5/bbc.co.uk/news.bbcimg.co.uk/js/app/bbccom/19_61/bbccom.js +mobile/android/tests/browser/chrome/tp5/bbc.co.uk/news.bbcimg.co.uk/js/common/3_2/bbc_fmtj_common.js +mobile/android/tests/browser/chrome/tp5/bbc.co.uk/news.bbcimg.co.uk/js/config/apps/4_5/bbc_fmtj_config.js +mobile/android/tests/browser/chrome/tp5/bbc.co.uk/news.bbcimg.co.uk/js/core/3_2/bbc_fmtj.js +mobile/android/tests/browser/chrome/tp5/bbc.co.uk/news.bbcimg.co.uk/js/locationservices/locator/v4_0/locator.js +mobile/android/tests/browser/chrome/tp5/bbc.co.uk/node1.bbcimg.co.uk/glow/gloader.0.1.4.js +mobile/android/tests/browser/chrome/tp5/bbc.co.uk/static.bbc.co.uk/frameworks/barlesque/1.8.15/desktop/3/script/barlesque.js +mobile/android/tests/browser/chrome/tp5/bbc.co.uk/static.bbc.co.uk/frameworks/requirejs/0.6.4/sharedmodules/require.js +mobile/android/tests/browser/chrome/tp5/bbc.co.uk/www.bbc.co.uk/news/index.html +mobile/android/tests/browser/chrome/tp5/msn.com/www.msn.com/index.html +mobile/android/tests/browser/chrome/tp5/twitter.com/twitter.com/ICHCheezburger.html +#modules/libpref/init/all.js +netwerk/protocol/ftp/doc/rfc959.txt +netwerk/test/crashtests/785753-1.html +netwerk/test/unit/test_readline.js +obj-x86_64-pc-linux-gnu +old-configure +other-licenses/7zstub/* +# other-licenses/7zstub/firefox/7zSD.sfx +other-licenses/nsis/Contrib/ApplicationID/ApplicationID.rc +other-licenses/nsis/Contrib/ApplicationID/resource.h +other-licenses/nsis/Contrib/ServicesHelper/ServicesHelper.rc +other-licenses/nsis/Contrib/ServicesHelper/resource.h +other-licenses/nsis/Plugins +other-licenses/nsis/nsisui.exe +parser/xml/test +#services/common/kinto-http-client.js +#services/common/kinto-offline-client.js +#testing/marionette/atom.js +# testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/jquery.js +# testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/underscore.js +testing/mochitest/browser-test.js +testing/modules/ajv-4.1.1.js +testing/modules/sinon-7.2.7.js +testing/talos/talos/scripts/jszip.min.js +testing/talos/talos/startup_test/sessionrestore/profile-manywindows/sessionstore.js +testing/talos/talos/startup_test/sessionrestore/profile/sessionstore.js +testing/talos/talos/tests/devtools/addon/content/pages/custom/debugger/static/js/main.js +testing/talos/talos/tests/dromaeo/lib/ext-base.js +testing/talos/talos/tests/dromaeo/lib/ext-core.js +testing/talos/talos/tests/dromaeo/tests/sunspider-string-tagcloud.html +testing/talos/talos/tests/dromaeo/tests/sunspider-string-unpack-code.html +testing/talos/talos/tests/dromaeo/webrunner.js +testing/talos/talos/tests/v8_7/regexp.js +testing/web-platform/mozilla/tests/wasm/js/*.js +testing/web-platform/tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html +testing/web-platform/tests/IndexedDB/keypath_maxsize.htm +testing/web-platform/tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.js +testing/web-platform/tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.js +testing/web-platform/tests/WebCryptoAPI/encrypt_decrypt/aes_ctr_vectors.js +testing/web-platform/tests/WebCryptoAPI/encrypt_decrypt/rsa_vectors.js +testing/web-platform/tests/WebCryptoAPI/import_export/ec_importKey.js +testing/web-platform/tests/WebCryptoAPI/import_export/rsa_importKey.js +testing/web-platform/tests/WebCryptoAPI/sign_verify/ecdsa_vectors.js +testing/web-platform/tests/WebCryptoAPI/sign_verify/hmac_vectors.js +testing/web-platform/tests/WebCryptoAPI/sign_verify/rsa_pkcs_vectors.js +testing/web-platform/tests/WebCryptoAPI/sign_verify/rsa_pss_vectors.js +testing/web-platform/tests/acid/acid3/test.html +testing/web-platform/tests/common/performance-timeline-utils.js +testing/web-platform/tests/conformance-checkers/html/elements/table/integrity/Naser_al-Din_Shah_Qajar-novalid.html +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-001.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-002.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-003.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-004.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-005.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-006.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-007.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-008.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-009.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-010.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-011.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-012.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-013.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-014.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-015.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-016.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-017.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-018.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-019.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-020.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-021.xht +testing/web-platform/tests/css/CSS2/text/text-transform-bicameral-022.xht +testing/web-platform/tests/css/css-regions/elements/support/Three.js +testing/web-platform/tests/editing/data/indent.js +testing/web-platform/tests/encoding/legacy-mb-japanese/euc-jp/jis0208_index.js +testing/web-platform/tests/encoding/legacy-mb-japanese/euc-jp/jis0212_index.js +testing/web-platform/tests/encoding/legacy-mb-japanese/iso-2022-jp/jis0208_index.js +testing/web-platform/tests/encoding/legacy-mb-japanese/shift_jis/jis0208_index.js +testing/web-platform/tests/encoding/legacy-mb-korean/euc-kr/euckr_index.js +testing/web-platform/tests/encoding/legacy-mb-tchinese/big5/big5_index.js +testing/web-platform/tests/encoding/single-byte-decoder.html +testing/web-platform/tests/encrypted-media/content/content-metadata.js +testing/web-platform/tests/encrypted-media/util/drm-messagehandler.js +testing/web-platform/tests/html/editing/dnd/datastore/001.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/002.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/003.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/004.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/005.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/006.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/007.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/008.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/009-1.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/009.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/010.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/011.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/012.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/013-1.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/014-1.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/016.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/017.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/018.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/019.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/020.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/021.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/022.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/023.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/024.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/025.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/026.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/027.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/028.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/029.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/030.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/031.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/032.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/033.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/034.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/035.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/036.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/037.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/038.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/039.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/040.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/041.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/042.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/043.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/044.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/045.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/046.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/047.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/048.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/049.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/050.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/051.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/052.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/056.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/057.xhtml +testing/web-platform/tests/html/editing/dnd/datastore/helper-drop-box-here.xhtml +testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_javascript_url_01.htm +testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-trying-to-navigate-its-child.html +testing/web-platform/tests/html/semantics/forms/the-form-element/form-autocomplete.html +testing/web-platform/tests/html/semantics/scripting-1/the-script-element/execution-timing/075.html +testing/web-platform/tests/html/semantics/scripting-1/the-script-element/execution-timing/094.html +testing/web-platform/tests/html/semantics/scripting-1/the-script-element/execution-timing/101.html +testing/web-platform/tests/html/semantics/scripting-1/the-script-element/execution-timing/102.html +testing/web-platform/tests/html/syntax/parsing/html5lib_adoption01.html +testing/web-platform/tests/html/syntax/parsing/html5lib_adoption02.html +testing/web-platform/tests/html/syntax/parsing/html5lib_comments01.html +testing/web-platform/tests/html/syntax/parsing/html5lib_doctype01.html +testing/web-platform/tests/html/syntax/parsing/html5lib_domjs-unsafe.html +testing/web-platform/tests/html/syntax/parsing/html5lib_entities01.html +testing/web-platform/tests/html/syntax/parsing/html5lib_entities02.html +testing/web-platform/tests/html/syntax/parsing/html5lib_html5test-com.html +testing/web-platform/tests/html/syntax/parsing/html5lib_inbody01.html +testing/web-platform/tests/html/syntax/parsing/html5lib_innerHTML_foreign-fragment.html +testing/web-platform/tests/html/syntax/parsing/html5lib_innerHTML_math.html +testing/web-platform/tests/html/syntax/parsing/html5lib_innerHTML_tests4.html +testing/web-platform/tests/html/syntax/parsing/html5lib_innerHTML_tests6.html +testing/web-platform/tests/html/syntax/parsing/html5lib_innerHTML_tests_innerHTML_1.html +testing/web-platform/tests/html/syntax/parsing/html5lib_innerHTML_webkit02.html +testing/web-platform/tests/html/syntax/parsing/html5lib_isindex.html +testing/web-platform/tests/html/syntax/parsing/html5lib_main-element.html +testing/web-platform/tests/html/syntax/parsing/html5lib_menuitem-element.html +testing/web-platform/tests/html/syntax/parsing/html5lib_namespace-sensitivity.html +testing/web-platform/tests/html/syntax/parsing/html5lib_pending-spec-changes.html +testing/web-platform/tests/html/syntax/parsing/html5lib_plain-text-unsafe.html +testing/web-platform/tests/html/syntax/parsing/html5lib_ruby.html +testing/web-platform/tests/html/syntax/parsing/html5lib_scriptdata01.html +testing/web-platform/tests/html/syntax/parsing/html5lib_scripted_adoption01.html +testing/web-platform/tests/html/syntax/parsing/html5lib_scripted_ark.html +testing/web-platform/tests/html/syntax/parsing/html5lib_scripted_webkit01.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tables01.html +testing/web-platform/tests/html/syntax/parsing/html5lib_template.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests1.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests10.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests11.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests12.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests14.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests15.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests16.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests17.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests18.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests19.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests2.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests20.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests21.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests22.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests23.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests24.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests25.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests26.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests3.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests5.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests6.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests7.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests8.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tests9.html +testing/web-platform/tests/html/syntax/parsing/html5lib_tricky01.html +testing/web-platform/tests/html/syntax/parsing/html5lib_webkit01.html +testing/web-platform/tests/html/syntax/parsing/html5lib_webkit02.html +testing/web-platform/tests/mixed-content/spec_json.js +testing/web-platform/tests/navigation-timing/resources/webperftestharness.js +testing/web-platform/tests/offscreen-canvas/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html +testing/web-platform/tests/offscreen-canvas/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.worker.js +testing/web-platform/tests/pointerevents/pointerevent_support.js +testing/web-platform/tests/referrer-policy/spec_json.js +testing/web-platform/tests/resource-timing/resource_TAO_match_origin.htm +testing/web-platform/tests/resource-timing/resource_TAO_multi.htm +testing/web-platform/tests/resource-timing/resource_TAO_origin_uppercase.htm +testing/web-platform/tests/resource-timing/resources/webperftestharness.js +testing/web-platform/tests/user-timing/resources/webperftestharness.js +testing/web-platform/tests/workers/constructors/Worker/unexpected-self-properties.worker.js +testing/xpcshell/moz-http2/moz-http2.js +testing/xpcshell/node-http2/test/compressor.js +third_party/python/mock-1.0.0/html/_static/*.js +third_party/python/pipenv/pipenv/patched/notpip/_vendor/distlib/*.exe +third_party/python/pipenv/pipenv/vendor/pip9/_vendor/distlib/*.exe +third_party/python/psutil-cp27-none-win_amd64/psutil/_psutil_windows.pyd +third_party/python/psutil/tmp/* +third_party/rust/libz-sys/src/zlib-1.2.8/contrib/dotzlib/DotZLib.chm +third_party/webkit/PerformanceTests/ARES-6/* +third_party/webkit/PerformanceTests/MotionMark/resources/debug-runner/d3.min.js +third_party/webkit/PerformanceTests/Speedometer/resources/todomvc +toolkit/components/maintenanceservice/maintenanceservice.rc +toolkit/components/maintenanceservice/resource.h +toolkit/components/normandy/vendor/*.js +#toolkit/components/passwordmgr/test/unit/test_OSCrypto_win.js +toolkit/components/places/tests/favicons/test_moz-anno_favicon_mime_type.js +toolkit/components/places/tests/unit/test_bookmarks_html.js +toolkit/components/places/tests/unit/test_bookmarks_json.js +#toolkit/components/prompts/test/test_bug619644.html +#toolkit/components/search/tests/xpcshell/test_json_cache.js +toolkit/components/url-classifier/tests/unit/test_hashcompleter_v4.js +toolkit/content/tests/browser/browser_default_image_filename.js +toolkit/crashreporter/client/crashreporter.rc +toolkit/crashreporter/client/resource.h +toolkit/crashreporter/google-breakpad/src/tools/solaris/dump_syms/testdata/dump_syms_regtest.o +toolkit/crashreporter/google-breakpad/src/tools/windows/binaries +toolkit/mozapps/update/updater/macbuild/Contents/PkgInfo +toolkit/mozapps/update/updater/macbuild/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib +toolkit/mozapps/update/updater/resource.h +toolkit/mozapps/update/updater/updater.rc +#widget/windows/* diff --git a/source/format b/source/format new file mode 100644 index 0000000000..163aaf8d82 --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/source/include-binaries b/source/include-binaries new file mode 100644 index 0000000000..29271e72a4 --- /dev/null +++ b/source/include-binaries @@ -0,0 +1,18 @@ +debian/logo/thunderbird/pre60/mailicon256.png +debian/logo/thunderbird/pre60/mailicon48.png +debian/logo/thunderbird/pre60/mailicon512.png +debian/logo/thunderbird/pre60/mailicon128.png +debian/logo/thunderbird/pre60/mailicon22.png +debian/logo/thunderbird/pre60/mailicon32.png +debian/logo/thunderbird/pre60/mailicon24.png +debian/logo/thunderbird/pre60/mailicon64.png +debian/logo/thunderbird/pre60/mailicon16.png +debian/logo/thunderbird/mailicon48.png +debian/logo/thunderbird/mailicon22.png +debian/logo/thunderbird/mailicon32.png +debian/logo/thunderbird/mailicon64.png +debian/logo/thunderbird/mailicon16.png +debian/logo/thunderbird/mailicon24.png +debian/logo/thunderbird/mailicon128.png +debian/logo/thunderbird/mailicon256.png +debian/logo/thunderbird/mailicon512.png diff --git a/source/lintian-overrides b/source/lintian-overrides new file mode 100644 index 0000000000..c9ebe467c1 --- /dev/null +++ b/source/lintian-overrides @@ -0,0 +1,30 @@ +# ignoring files within the test cases +source: source-is-missing comm/*/Footer.html * +source: source-is-missing devtools/* +source: source-is-missing testing/* +source: source-is-missing */tests/* +source: source-is-missing */test/* + +# TexZilla isn't packaged yet too +source: source-is-missing comm/editor/ui/texzilla/content/TeXZilla.js * + +# files are under MPL-2 license with some long lines +source: source-is-missing comm/mail/components/compose/content/cloudAttachmentLinkManager.js * + +# no JS files +source: source-is-missing modules/libpref/init/all.js * + +# needed by TB, some various long lines +source: source-is-missing browser/components/newtab/data/content/activity-stream.bundle.js * +source: source-is-missing browser/components/newtab/prerendered/locales/* * +source: source-is-missing browser/components/newtab/vendor/*.js * +source: source-is-missing browser/components/pocket/content/panels/js/* +source: source-is-missing browser/extensions/screenshots/build/*.js * +source: source-is-missing dom/svg/crashtests/1507961-1.html * +source: source-is-missing gfx/wr/debugger/dist/build.js * +source: source-is-missing gfx/wr/wrench/script/reftest-analyzer.xhtml * +source: source-is-missing services/common/kinto-http-client.js * +source: source-is-missing services/common/kinto-offline-client.js * +source: source-is-missing third_party/webkit/PerformanceTests/* +source: source-is-missing toolkit/components/utils/mozjexl.js * +source: source-is-missing toolkit/content/widgets/tree.js * diff --git a/tests/control b/tests/control new file mode 100644 index 0000000000..1fe2d6766a --- /dev/null +++ b/tests/control @@ -0,0 +1,14 @@ +Tests: help.sh +Depends: thunderbird, xvfb, xauth + +#Tests: xpcshellTest.sh +#Depends: thunderbird-dev + +#Tests: idlTest.sh +#Depends: thunderbird-dev, build-essential + +#Tests: icudatfileTest.sh +#Depends: thunderbird-dev + +#Tests: soSymlinkTest.sh +#Depends: thunderbird-dev diff --git a/tests/help.sh b/tests/help.sh new file mode 100755 index 0000000000..7a76389367 --- /dev/null +++ b/tests/help.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +set -e + +# At least check we can execute the main binary +# to catch missing dependenies +echo -n "Test1: checking help output..." +xvfb-run -a /usr/lib/thunderbird/thunderbird -help >/dev/null +echo "done." + +echo -n "Test2: checking version output..." +xvfb-run -a /usr/lib/thunderbird/thunderbird --version | grep -qs Thunderbird +echo "done." diff --git a/tests/icudatfileTest.sh b/tests/icudatfileTest.sh new file mode 100755 index 0000000000..8e3ec99916 --- /dev/null +++ b/tests/icudatfileTest.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +set -e + +TESTFILE=$(basename $0 .sh) +ICUDATFILE=$(basename /usr/lib/thunderbird/icud*.dat) + +if [ -f "/usr/lib/thunderbird/${ICUDATFILE}" ]; then + echo "Running tests in ${TESTFILE}" + + echo -n "Test1: Check if /usr/lib/thunderbird/${ICUDATFILE} is linked to /usr/share/thunderbird/${ICUDATFILE}..." + if [ "$(readlink -e "/usr/share/thunderbird/${ICUDATFILE}")" = "/usr/lib/thunderbird/${ICUDATFILE}" ]; then + echo "done" + else + echo "No!" + exit 1 + fi +else + echo "Nothing to be done here." +fi + +echo "All Tests in ${TESTFILE} finished succesfully." diff --git a/tests/idlTest.idl b/tests/idlTest.idl new file mode 100644 index 0000000000..148e5d3a4b --- /dev/null +++ b/tests/idlTest.idl @@ -0,0 +1,10 @@ +// Include a file from thunderbird so we're sure these ended up in the right +// location +#include "nsIMsgIncomingServer.idl" + +[scriptable, uuid(1b9d7057-90f5-4ca5-a379-a59aa47acbd2)] +interface IdlTestIncomingServer : nsIMsgIncomingServer +{ + readonly attribute boolean thisIsATest; +}; + diff --git a/tests/idlTest.sh b/tests/idlTest.sh new file mode 100755 index 0000000000..38657399b7 --- /dev/null +++ b/tests/idlTest.sh @@ -0,0 +1,51 @@ +#!/bin/sh + +set -e + +cleanup() { + [ ! -d "${SCRATCHDIR}" ] || rm -rf "${SCRATCHDIR}" +} + +#trap cleanup EXIT + +SCRATCHDIR=`mktemp -d` +TEST_IDL_FILE="debian/tests/idlTest.idl" +TESTFILE=$(basename $0 .sh) + +echo "Running tests in ${TESTFILE}" + +echo -n "Test1: Make sure we can generate typelibs..." +/usr/lib/thunderbird-devel/sdk/bin/typelib.py \ + -I"/usr/lib/thunderbird-devel/idl" \ + -o "${SCRATCHDIR}/test.xpt" \ + "${TEST_IDL_FILE}" +if [ -f "${SCRATCHDIR}/test.xpt" ]; then + echo "done." +else + echo "No!" + echo "Test call successful but no outputfile '${SCRATCHDIR}/test.xpt' found!" + exit 1 +fi + +echo -n "Test2: Make sure we can generate C++ headers..." +/usr/lib/thunderbird-devel/sdk/bin/header.py \ + -I"/usr/lib/thunderbird-devel/idl" \ + -o "${SCRATCHDIR}/test.h" \ + "${TEST_IDL_FILE}" +if [ -f "${SCRATCHDIR}/test.h" ]; then + echo "done." +else + echo "No!" + echo "Test call successful but no outputfile '${SCRATCHDIR}/test.h' found!" + exit 1 +fi + +echo -n "Test3: Compiling generated file..." +g++ -std=c++11 \ + -I/usr/include/thunderbird \ + -I/usr/include/nspr \ + -o "${SCRATCHDIR}/test.o" \ + "${SCRATCHDIR}/test.h" +echo "done." + +echo "All Tests in ${TESTFILE} finished successfully." diff --git a/tests/soSymlinkTest.sh b/tests/soSymlinkTest.sh new file mode 100755 index 0000000000..972f6289c7 --- /dev/null +++ b/tests/soSymlinkTest.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +set -e + +FAIL=0 + +echo "Check for symlinked .so files in dev package..." + +for SOFILE in `ls /usr/lib/thunderbird-devel/sdk/lib/*.so`; do + if [ ! -L ${SOFILE} ]; then + echo ${SOFILE} is not a symlink! + FAIL=1 + fi +done + +echo -n "Test result is " +if [ ${FAIL} -eq 0 ]; then + echo "done." +else + echo "FAILED!" + exit 1 +fi diff --git a/tests/xpcshellTest.js b/tests/xpcshellTest.js new file mode 100644 index 0000000000..806b28998a --- /dev/null +++ b/tests/xpcshellTest.js @@ -0,0 +1 @@ +dump("running xpcshell..."); diff --git a/tests/xpcshellTest.sh b/tests/xpcshellTest.sh new file mode 100755 index 0000000000..f924bc13de --- /dev/null +++ b/tests/xpcshellTest.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +echo -n "Checking if we can run xpcshell..." + +LD_LIBRARY_PATH=/usr/lib/thunderbird/ \ +/usr/lib/thunderbird-devel/sdk/bin/xpcshell \ + -g /usr/share/thunderbird/ debian/tests/xpcshellTest.js + +echo "done." diff --git a/thunderbird-l10n-all.lintian-overrides b/thunderbird-l10n-all.lintian-overrides new file mode 100644 index 0000000000..3658b09a45 --- /dev/null +++ b/thunderbird-l10n-all.lintian-overrides @@ -0,0 +1,2 @@ +# no, this is metapackage +thunderbird-l10n-all: wrong-section-according-to-package-name thunderbird-l10n-all => localization diff --git a/thunderbird-wrapper-helper.sh b/thunderbird-wrapper-helper.sh new file mode 100644 index 0000000000..910c2e25c2 --- /dev/null +++ b/thunderbird-wrapper-helper.sh @@ -0,0 +1,429 @@ +# vim: autoindent tabstop=4 shiftwidth=4 expandtab softtabstop=4 filetype=sh textwidth=76 +# +# File: +# /usr/lib/thunderbird/thunderbird-wrapper-helper.sh +# +# Purpose: +# This shell script has helper functions and variables that are used or +# called from the main wrapper-script /usr/bin/thunderbird. +# +# Copyright: +# Licensed under the terms of GPLv2+. + + +# trying to get the DE +if [ "${XDG_CURRENT_DESKTOP}" = "" ]; then + DESKTOP=$(echo "${XDG_DATA_DIRS}" | sed 's/.*\(gnome\|kde\|mate\|xfce\).*/\1/') +else + DESKTOP=${XDG_CURRENT_DESKTOP} +fi + +# timestamp like '2017-02-26-113855' +DATE=$(date +%F-%H%M%S) + +# convert to lower case shell safe +DESKTOP=$(echo "$DESKTOP" | tr '[:upper:]' '[:lower:]') + +######################################### +# message templates for the X11 dialogs # +######################################### + +DEFAULT_X11_MSG="\ +If you see this message something went wrong while +migrating your Icedove profile(s) into the Thunderbird +profile folder. + +The following error occured:" + +DOT_THUNDERBIRD_EXISTS="\ +${DEFAULT_X11_MSG} + +An existing profile folder (or symlink) '.thunderbird' and a folder +(or symlink) '.icedove' was found in your home directory '${HOME}/' +while trying to migrate the Icedove profile(s) folder. + +This can be caused by an old, currently unused profile folder or you might +be using Thunderbird as provided by upstream Mozilla. +If you don't need this old profile folder, you can remove or backup +it and start Thunderbird again. + +Sorry, but please investigate the situation yourself. + +The Debian wiki has extra information about the migration from +Icedove to Thunderbird. + + https://wiki.debian.org/Thunderbird + +Please also read the information in section 'Profile Migration' in + + /usr/share/doc/thunderbird/README.Debian.gz +" + +THUNDERBIRD_PROFILE_LINKING_ERROR="\ +${DEFAULT_X11_MSG} + +A needed symlink for the Thunderbird profile(s) folder '.thunderbird' +to the old existing Icedove profile '.icedove' couldn't created. + +Sorry, but please investigate the situation by yourself. + +Please mind also the information in section 'Profile Migration' +given in the file + + /usr/share/doc/thunderbird/README.Debian.gz +" + +START_MIGRATION="\ +You see this window because you're starting Thunderbird for the +first time and have profile(s) for Icedove. +The Debian Icedove package is de-branded back to Thunderbird. + +The Icedove profile(s) will now be migrated to the Thunderbird folder. +This will take a short time! + +Please be patient, the Thunderbird program will be started right after +the changes. + +If you need more information on the de-branding and migration please +read + + /usr/share/doc/thunderbird/README.Debian.gz + +The Debian wiki is also holding extra information about the migration of +Icedove to Thunderbird. + + https://wiki.debian.org/Thunderbird +" + +TITLE="Icedove to Thunderbird Profile migration" + +################### +# local functions # +################### + +# Simple search all files where we made a backup from +do_collect_backup_files () { +output_debug "Collecting all files we've made a backup of." +BACKUP_FILES=$(find -L "${TB_PROFILE_FOLDER}/" -type f -name "*backup_thunderbird_migration*") +if [ "${BACKUP_FILES}" != "" ]; then + output_info "The following backups related to the Icedove to Thunderbird transition exist:" + output_info "" + cat << EOF +${BACKUP_FILES} +EOF + output_info "" +else + output_info "No backups related to the Icedove to Thunderbird transition found." +fi +} + +# Create the file .thunderbird/.migrated with some content +do_create_migrated_mark_file (){ +cat < "${TB_PROFILE_FOLDER}/.migrated" +This file is automatically created by /usr/bin/thunderbird, it will be +created on every start of Thunderbird if does not exist. +Remove that file only if you know the propose of this file. + +/usr/share/doc/thunderbird/README.Debian.gz has some information about this +dot file. +EOF +} + +# Fix the file(s) ${TB_PROFILE_FOLDER}/${TB_PROFILE}/mimeTypes.rdf +# Search for pattern of '/usr/bin/iceweasel' and 'icedove' in the file and +# replace them with '/usr/bin/x-www-browser' and 'thunderbird'. +do_fix_mimetypes_rdf (){ +for MIME_TYPES_RDF_FILE in $(find -L "${TB_PROFILE_FOLDER}/" -name mimeTypes.rdf); do + RDF_SEARCH_PATTERN=$(grep '/usr/bin/iceweasel\|icedove' "${MIME_TYPES_RDF_FILE}") + if [ "${RDF_SEARCH_PATTERN}" != "" ]; then + output_debug "Backup ${MIME_TYPES_RDF_FILE} to ${MIME_TYPES_RDF_FILE}.backup_thunderbird_migration-${DATE}" + cp "${MIME_TYPES_RDF_FILE}" "${MIME_TYPES_RDF_FILE}.backup_thunderbird_migration-${DATE}" + + output_debug "Fixing possible broken 'mimeTypes.rdf'." + sed -i "s|/usr/bin/iceweasel|/usr/bin/x-www-browser|g;s|icedove|thunderbird|g" "${MIME_TYPES_RDF_FILE}" + else + output_info "No fix up for ${MIME_TYPES_RDF_FILE} needed." + fi +done +} + +# Inform the user we will starting the migration +do_inform_migration_start () { +# A system admin may avoid the dialog ... +if [ ! -f /etc/thunderbird/no_migration_popup ]; then + case "${DESKTOP}" in + gnome|mate|xfce) + local_zenity --info --no-wrap --title "${TITLE}" --text "${START_MIGRATION}" + if [ $? -ne 0 ]; then + local_xmessage -center "${START_MIGRATION}" + fi + ;; + + kde) + local_kdialog --title "${TITLE}" --msgbox "${START_MIGRATION}" + if [ $? -ne 0 ]; then + local_xmessage -center "${START_MIGRATION}" + fi + ;; + + *) + xmessage -center "${START_MIGRATION}" + ;; + esac +fi +} + +# Function that will do the fixing of mimeapps.list files +do_migrate_old_icedove_desktop() { +# Fix mimeapps.list files in the following folders which may still have +# icedove.desktop associations +# +# ~/.config/ +# ~/.local/share/applications/ +# +# icedove.desktop files are now deprecated, but still commonly around. +# We normally could remove them, but for safety only modify the files. +# These mimeapps.list files configures default applications for MIME types. + +# Only jump in loop if we haven't already done a migration before or the +# user is forcing this by the option '--fixmime'. +if [ ! -f "${TB_PROFILE_FOLDER}/.migrated" ] || [ "${FORCE_MIMEAPPS_MIGRATE}" = "1" ]; then + if [ ! -f "${TB_PROFILE_FOLDER}/.migrated" ]; then + output_debug "No migration mark '${TB_PROFILE_FOLDER}/.migrated' found, checking mimeapps.list files for possible migration." + elif [ "${FORCE_MIMEAPPS_MIGRATE}" = "1" ]; then + output_debug "Migration enforced by user. Checking mimeapps.list files once again for possible migration." + fi + for MIMEAPPS_LIST in ${HOME}/.config/mimeapps.list ${HOME}/.local/share/applications/mimeapps.list; do + # Check if file exists and has old icedove entry + if [ -e "${MIMEAPPS_LIST}" ] && \ + grep -iq "\(userapp-\)*icedove\(-.*\)*\.desktop" "${MIMEAPPS_LIST}"; then + + output_debug "Fixing broken '${MIMEAPPS_LIST}'." + MIMEAPPS_LIST_COPY="${MIMEAPPS_LIST}.backup_thunderbird_migration-${DATE}" + + # Fix mimeapps.list and create a backup, but it's really unlikely we + # have an existing backup so no further checking here! + # (requires GNU sed 3.02 or ssed for case-insensitive "I") + sed -i.backup_thunderbird_migration-"${DATE}" "s|\(userapp-\)*icedove\(-.*\)*\.desktop|thunderbird.desktop|gI" "${MIMEAPPS_LIST}" + if [ $? -ne 0 ]; then + output_info "The configuration file for default applications for some MIME types" + output_info "'${MIMEAPPS_LIST}' couldn't be fixed." + output_info "Please check for potential problems like low disk space or wrong access rights!" + logger -i -p warning -s "$0: [profile migration] Couldn't fix '${MIMEAPPS_LIST}'!" + exit 1 + else + output_debug "A copy of the configuration file of default applications for some MIME types" + output_debug "was saved to '${MIMEAPPS_LIST_COPY}'." + fi + else + output_info "No fix up for ${MIMEAPPS_LIST} needed." + fi + done + output_debug "Setting migration mark '${TB_PROFILE_FOLDER}/.migrated'." + do_create_migrated_mark_file +fi + +# Migrate old user specific *.desktop entries +# Users may have created custom desktop shortcuts for Icedove in +# the past. These associations (files named like 'userapp-Icedove-*.desktop') +# are done in the folder $(HOME)/.local/share/applications/. + +# Remove such old icedove.desktop files, superseeded by system-wide +# /usr/share/applications/thunderbird.desktop. The old ones in $HOME don't +# receive updates and might have missing/outdated fields. +# *.desktop files and their reverse mimeinfo cache provide information +# about available applications. + +for ICEDOVE_DESKTOP in $(find "${HOME}/.local/share/applications/" -iname "*icedove*.desktop"); do + output_debug "Backup ${ICEDOVE_DESKTOP} to ${ICEDOVE_DESKTOP}.backup_thunderbird_migration-${DATE}" + ICEDOVE_DESKTOP_COPY=${ICEDOVE_DESKTOP}.backup_thunderbird_migration-${DATE} + mv "${ICEDOVE_DESKTOP}" "${ICEDOVE_DESKTOP_COPY}" + # Update the mimeinfo cache. + # Not existing *.desktop files in there should simply be ignored by the system anyway. + if [ -x "$(which update-desktop-database)" ]; then + output_debug "Call 'update-desktop-database' to update the mimeinfo cache." + update-desktop-database "${HOME}/.local/share/applications/" + fi +done +} + +# Print out an error message about failed migration +do_thunderbird2icedove_error_out (){ +case "${DESKTOP}" in + gnome|mate|xfce) + local_zenity --info --no-wrap --title "${TITLE}" --text "${DOT_THUNDERBIRD_EXISTS}" + if [ $? -ne 0 ]; then + local_xmessage -center "${DOT_THUNDERBIRD_EXISTS}" + fi + FAIL=1 + ;; + kde) + local_kdialog --title "${TITLE}" --msgbox "${DOT_THUNDERBIRD_EXISTS}" + if [ $? -ne 0 ]; then + local_xmessage -center "${DOT_THUNDERBIRD_EXISTS}" + fi + FAIL=1 + ;; + *) + xmessage -center "${DOT_THUNDERBIRD_EXISTS}" + FAIL=1 + ;; +esac +} + +# Symlink .thunderbird to .icedove +do_thunderbird2icedove_symlink () { +output_debug "Trying to symlink '${TB_PROFILE_FOLDER}' to '${ID_PROFILE_FOLDER}'" +if ln -s "${ID_PROFILE_FOLDER}" "${TB_PROFILE_FOLDER}"; then + output_debug "success." + return 0 +else + case "${DESKTOP}" in + gnome|mate|xfce) + local_zenity --info --no-wrap --title "${TITLE}" --text "${THUNDERBIRD_PROFILE_LINKING_ERROR}" + if [ $? -ne 0 ]; then + local_xmessage -center "${THUNDERBIRD_PROFILE_LINKING_ERROR}" + fi + FAIL=1 + ;; + kde) + local_kdialog --title "${TITLE}" --msgbox "${THUNDERBIRD_PROFILE_LINKING_ERROR}" + if [ $? -ne 0 ]; then + local_xmessage -center "${THUNDERBIRD_PROFILE_LINKING_ERROR}" + fi + FAIL=1 + ;; + *) + xmessage -center "${THUNDERBIRD_PROFILE_LINKING_ERROR}" + FAIL=1 + ;; + esac + output_debug "Ohh, that wasn't working, sorry! Do you have access rights to create a symlink?" + return 1 +fi +} + +# Wrapping /usr/bin/kdialog calls +local_kdialog () { +if [ -f /usr/bin/kdialog ]; then + /usr/bin/kdialog "$@" + return 0 +else + return 1 +fi +} + +# Wrapping /usr/bin/xmessage calls +local_xmessage () { +if [ -f /usr/bin/xmessage ]; then + /usr/bin/xmessage "$@" +else + # this should never be reached as thunderbird has a dependency on x11-utils! + output_info "xmessage not found" +fi +} + +# Wrapping /usr/bin/zenity calls +local_zenity () { +if [ -f /usr/bin/zenity ]; then + /usr/bin/zenity "$@" + return 0 +else + return 1 +fi +} + +# Simple info output function +output_info () { +echo "INFO -> $1" +} + +# Simple debugging output function +output_debug () { +if [ "${VERBOSE}" = "1" ]; then + echo "DEBUG -> $1" +fi +} + +# How this script can be called +usage () { +cat << EOF + +Usage: ${0##*/} [--help|-? ] | [--verbose ] [ -g ] [args-passed-to-thunderbird...] + +This script parses its command line options and passes everything else on to +Thunderbird. Note that some Thunderbird options need an additional argument +that can't be naturally mixed with other options! + + -g Starts Thunderbird within gdb (needs package thunderbird-dbg) + + --help or ? Display this help and exit + + --verbose Verbose mode, increase the output messages to stdout + (Logging to /var/log/syslog isn't touched or increased by this + option!) + +Additional options: + + --fixmime Only fixes MIME associations in + ~/.thunderbird/$profile/mimeTypes.rdf and exits. Can be + combined with '--verbose'. + + --show-backup Collect the backup files which where made and print them to + stdout and exits. +EOF +cat << EOF + +Examples: + + ${0##*/} --help + + Writes this help messages on stdout. If any other option is given it + will be ignored. Note that Thunderbird has a '-h' option which needs + to be used if you want the help output for Thunderbird. + + ${0##*/} --verbose + + Enable more debug messages on stdout. Only useful while developing the + thunderbird packages or during profile migration. + + ${0##*/} -g + + Starts Thunderbird in a GDB session if packages gdb and thunderbird-dbg + are installed. +EOF +# other debuggers will be added later, we need maybe a separate valgrind +# package! Note MDN site for valgrind +# https://developer.mozilla.org/en-US/docs/Mozilla/Testing/Valgrind +# ${0##*/} -d gdb +# The same as above, only manually specified the GDB debugging tool as +# argument. Note that you probably will need additional parameter to +# enable e.g. writing to a logfile. +# It's also possible to specify valgrind, that will need to add additional +# quoted arguments in any case! +# The thunderbird binary must be compiled with valgrind support if you +# want to use valgrind here! +# +# ${0##*/} -d 'valgrind --arg1 --arg2' -thunderbird-arg1 +cat << EOF + + ${0##*/} [args-passed-to-thunderbird...] + + Some example for invoking Thunderbird from the ommand line: + Run in safe-mode with the JS Error console: + + ${0##*/} --safe-mode --jsconsole + + Call Thunderbird directly to compose a message with a specific + attachement. + + ${0##*/} -compose "to='recipient@tld.org','attachment=/path/attachment'" + + See the all possible arguments for Thunderbird: + + ${0##*/} -h + +EOF +} + +# end local functions diff --git a/thunderbird-wrapper.sh b/thunderbird-wrapper.sh new file mode 100755 index 0000000000..fd6fd8b4eb --- /dev/null +++ b/thunderbird-wrapper.sh @@ -0,0 +1,264 @@ +#!/bin/bash +# vim: autoindent tabstop=4 shiftwidth=4 expandtab softtabstop=4 filetype=sh textwidth=76 +# +# File: +# /usr/bin/thunderbird +# +# Purpose: +# This is a wrapper script for starting the thunderbird binary with taking +# care of the searching for an old user Icedove profile folder and adopting +# the folder into the new place if possible. +# +# Environment: +# The Icedove binary was using the profile folder '${HOME}/.icedove'. The +# Mozilla default for the Thunderbird binary is '${HOME}/.thunderbird'. +# The script will looking for the old profile folder and will symlink the +# folder '${HOME}/.thunderbird' to the profile folder '${HOME}/.icedove'. +# +# Copyright: +# Licensed under the terms of GPLv2+. + +#set -x + +TB_HELPER=${TB_HELPER:-"/usr/lib/thunderbird/thunderbird-wrapper-helper.sh"} +# sourcing external variables and helper functions +# hide the sourcing for http://www.shellcheck.net/ +# shellcheck source=/dev/null +. "${TB_HELPER}" +if [ $? -ne 0 ]; then + echo "sourcing ${TB_HELPER} failed - giving up." + exit 1 +fi + +# some global variables +MOZ_APP_NAME=thunderbird +MOZ_APP_LAUNCHER=$(which "$0") +MOZ_LIBDIR=/usr/lib/${MOZ_APP_NAME} +ID_PROFILE_FOLDER=${HOME}/.icedove +TB_PROFILE_FOLDER=${HOME}/.thunderbird +TB_GDB_DEFAULT_OPTS=${TB_GDB_DEFAULT_OPTS:-"-ex handle SIG38 nostop -ex handle SIGPIPE nostop"} + +export HELP=0 +export FAIL=0 +export FORCE_MIMEAPPS_MIGRATE=0 +export VERBOSE=0 + +# set MOZ_APP_LAUNCHER for gnome-session +export MOZ_APP_LAUNCHER + +# let Thunderbird detect the system dictionaries +export DICPATH=/usr/share/hunspell + +declare -a TB_ARGS=() + +for ARG in "$@"; do + case "${ARG}" in + --fixmime) + FIXMIME=1 + FORCE_MIMEAPPS_MIGRATE=1 + ;; + -g) + DEBUGGER=1 + DEBUG=1 + ;; +# -d) +# USER_DEBUGGER=$2 +# DEBUG=1 +# shift +# ;; + --help) + HELP=1 + ;; + --show-backup) + SHOW_BACKUP=1 + ;; + --verbose) + output_info "[[ ... using verbose mode ... ]]" + VERBOSE=1 + ;; + '?') + usage >&2 + exit 1 + ;; + # Every other argument is needed to get down to the TB starting call. + *) + TB_ARGS+=("${ARG}") + ;; + esac + shift +done + +# sanity check +if [ "$DEBUGGER" != "" ] && [ "$USER_DEBUGGER" != "" ]; then + output_info "You can't use option '-g and '-d' at the same time!" + usage + exit 1 +fi + +# If '--help' was called show usage() and exit immediately without other +# helpers can be called. +if [ "${HELP}" = "1" ]; then + usage + exit 0 +fi + +# The user is forcing to do the MIME fixing (again). If called a used +# profile(s) folder ~/.thunderbird will be also reworked. That's not the +# case if the user is starting this wrapper for a first time and only a +# folder ~/.thunderbird is existing! +if [ "${FIXMIME}" = "1" ]; then + do_fix_mimetypes_rdf + do_migrate_old_icedove_desktop + do_collect_backup_files + exit 0 +fi + +if [ "${SHOW_BACKUP}" = "1" ]; then + do_collect_backup_files + exit 0 +fi + +############################################################################# +# User Thunderbird Profile Adoptions # +# # +# The users Icedove/Thunderbird profile(s) doesn't need to be modified in a # +# different and complicated way. We simply need to ensure that the # +# Thunderbird binary is finding the existing profiles in the folder # +# $(HOME)/.thunderbird folder or a valid symlink pointing to the profiles. # +# # +# To "migrate" an old existing Icedove profile we can simply do a symlink # +# from $(HOME)/.thunderbird --> $(HOME)/.icedove . # +# # +# Afterwards do some changes to the file mimeTypes.rdf within every # +# profile. Also we can modify existing *icedove*.desktop entries in the # +# files. # +# # +# $(HOME)/.config/mimeapps.list # +# $(HOME)/.local/share/applications/mimeapps.list # +# # +############################################################################# + +# First try the default case for modification, there is only a folder +# ${ID_PROFILE_FOLDER} and we can symlink to this. +if { [ -d "${ID_PROFILE_FOLDER}" ] || [ -L "${ID_PROFILE_FOLDER}" ]; } && \ + { [ ! -d "${TB_PROFILE_FOLDER}" ] && [ ! -L "${TB_PROFILE_FOLDER}" ]; }; then + output_debug "found folder '${ID_PROFILE_FOLDER}'" + output_debug "not found folder or symlink '${TB_PROFILE_FOLDER}'" + output_debug "Start Thunderbird profile adoptions, please be patient!" + + # open a pop-up window with a message about starting migration + do_inform_migration_start + + # do the symlinking + do_thunderbird2icedove_symlink + + # fixing mimeTypes.rdf which may have registered the iceweasel binary + # as browser, instead of x-www-browser + do_fix_mimetypes_rdf + + # Fix local mimeapp.list and *.desktop entries + do_migrate_old_icedove_desktop + + # we are finished + output_info "Thunderbird Profile adoptions done." + do_collect_backup_files +fi + +# We found both profile folder, and .thunderbird is a symlink, +# we need to check if .thunderbird is symlinked to .icedove +if { [ -d "${ID_PROFILE_FOLDER}" ] && [ -L "${TB_PROFILE_FOLDER}" ]; } && \ + [ "$(readlink -e "${TB_PROFILE_FOLDER}")" = "${ID_PROFILE_FOLDER}" ];then + + output_debug "Found folder ${ID_PROFILE_FOLDER}, found a symlink ${TB_PROFILE_FOLDER} pointing to ${ID_PROFILE_FOLDER}" + + # Check if we need to do some migration, the linking could be existing + # before we switched back to Thunderbird. + if [ ! -f "${TB_PROFILE_FOLDER}/.migrated" ]; then + # Fixing mimeTypes.rdf which may have registered the iceweasel binary + # as browser, instead of x-www-browser + do_fix_mimetypes_rdf + + # Fix local mimeapp.list and *.desktop entries + do_migrate_old_icedove_desktop + fi + +# ... or the opposite if .icedove is symlinked to .thunderbird +elif { [ -d "${TB_PROFILE_FOLDER}" ] && [ -L "${ID_PROFILE_FOLDER}" ]; } && \ + [ "$(readlink -e "${ID_PROFILE_FOLDER}")" = "${TB_PROFILE_FOLDER}" ];then + + output_debug "Found folder ${TB_PROFILE_FOLDER}, found a symlink ${ID_PROFILE_FOLDER} pointing to ${TB_PROFILE_FOLDER}" + output_debug "You may want to remove the symlink ${ID_PROFILE_FOLDER}? It's probably not needed anymore." + + # Check if we need to do some migration ... + if [ ! -f "${TB_PROFILE_FOLDER}/.migrated" ]; then + # Fixing mimeTypes.rdf which may have registered the iceweasel binary + # as browser, instead of x-www-browser + do_fix_mimetypes_rdf + + # Fix local mimeapps.list and *.desktop entries + do_migrate_old_icedove_desktop + fi + +# We found both profile folder, but they are not linked to each other! This +# is a state we can't solve on our own !!! The user needs to interact and +# has probably an old or otherwise used Thunderbird installation. Which one +# is the correct one to use? +elif { [ -d "${ID_PROFILE_FOLDER}" ] || [ -L "${ID_PROFILE_FOLDER}" ]; } && \ + { [ -d "${TB_PROFILE_FOLDER}" ] || [ -L "${TB_PROFILE_FOLDER}" ]; } && \ + [ "$(readlink -e "${TB_PROFILE_FOLDER}")" != "$(readlink -e "${ID_PROFILE_FOLDER}")" ]; then + + for CHECK in ${ID_PROFILE_FOLDER} ${TB_PROFILE_FOLDER}; do + FILE_CHECK=$(readlink -e "${CHECK}") + if [ "${FILE_CHECK}" != "" ] && [ -L "${CHECK}" ]; then + output_debug "Found symlink '${CHECK}' pointing to '${FILE_CHECK}'." + elif [ "${FILE_CHECK}" != "" ] && [ -d "${CHECK}" ]; then + output_debug "Found folder '${FILE_CHECK}'." + else + output_debug "${CHECK} is probably a symlink pointing to a non existing target, at least not to ${ID_PROFILE_FOLDER}." + logger -i -p warning -s "$0: [profile migration] ${CHECK} is probably a symlink pointing to a non existing target, at least not to ${ID_PROFILE_FOLDER}." + fi + done + + output_debug "There are already the folders or symlinks '${TB_PROFILE_FOLDER}' and '${ID_PROFILE_FOLDER}'" + output_debug "which not pointing to each other, will do nothing as don't know which folder to use." + output_debug "Please investigate by yourself! Maybe you will find additional information in '/usr/share/doc/thunderbird/README.Debian.gz'." + logger -i -p warning -s "$0: [profile migration] Couldn't migrate Icedove into Thunderbird profile due existing or symlinked folder '${TB_PROFILE_FOLDER}'!" + + # display a graphical advice if possible + do_thunderbird2icedove_error_out + +fi + +if [ "${FAIL}" = 1 ]; then + output_info "An error happened while trying to migrate the old Icedove profile folder '${ID_PROFILE_FOLDER}'." + output_info "Please take a look into the syslog file!" + exit 1 +fi + +# If we are here we going simply further by starting Thunderbird. + +if [ "${DEBUG}" = "" ]; then + TB_ARGS_LINE=$(echo "${TB_ARGS[@]}" | sed "s/'/\"/g") + output_debug "call '${MOZ_LIBDIR}/${MOZ_APP_NAME} ${TB_ARGS_LINE}'" + exec "${MOZ_LIBDIR}"/"${MOZ_APP_NAME}" "${TB_ARGS[@]}" +else + # User has selected GDB? + if [ "${DEBUGGER}" = "1" ]; then + # checking for GDB + if [ -f /usr/bin/gdb ]; then + if dpkg-query -W -f='${Version}' thunderbird-dbgsym &>/dev/null ; then + output_info "Starting Thunderbird with GDB ..." + output_info "LANG= /usr/bin/gdb ${TB_GDB_DEFAULT_OPTS} -ex run ${MOZ_LIBDIR}/${MOZ_APP_NAME} ${TB_ARGS[@]}" + LANG='' exec "/usr/bin/gdb ${TB_GDB_DEFAULT_OPTS} -ex run ${MOZ_LIBDIR}/${MOZ_APP_NAME} ${TB_ARGS[@]}" + else + output_info "No package 'thunderbird-dbgsym' installed! Please install first and restart." + exit 1 + fi + else + output_info "No package 'gdb' installed! Please install first and try again." + exit 1 + fi + fi +fi + +exit 0 diff --git a/thunderbird.1 b/thunderbird.1 new file mode 100644 index 0000000000..000bf4e453 --- /dev/null +++ b/thunderbird.1 @@ -0,0 +1,205 @@ +.TH "THUNDERBIRD" "1" "February 27, 2010" "Christoph Göhre" "Linux User's Manual" +.SH "NAME" +thunderbird \- Mail User Agent (MUA) and newsgroup/RSS client for X11 derived from the Mozilla Thunderbird. +.SH "SYNOPSIS" +.B /usr/lib/thunderbird/thunderbird +[\fIOPTIONS\fR] [\fIURL\fR] + +.B /usr/lib/thunderbird/thunderbird\-bin +[\fIOPTIONS\fR] [\fIURL\fR] + +.SH "DESCRIPTION" +\fBThunderbird\fR provides IMAP/POP support, a built-in RSS reader, support for +HTML mail, powerful quick search, saved search folders, advanced message +filtering, junk mail controls, message grouping, labels, return receipts, smart +address book, LDAP address completion, import tools and the ability to manage +multiple identities in email and newsgroup accounts. +.PP +\fBThunderbird\fR provides enterprise and government grade security such as S/MIME, +digital signing, message encryption, and support for certificates and security +devices. + +.SH "USAGE" +\fBthunderbird\fR is a executable file that will set up the +environment for the starting executable, \fBthunderbird\-bin\fR. +If there is an Thunderbird mail client already running, \fBthunderbird\fR will +arrange for it to create a new mail client window; otherwise it will start +the Thunderbird application. + +.SH "OPTIONS" +A summary of the options supported by \fBthunderbird\fR is included below. + +.SS "X11 options" +.TP +.BI \-\-display= DISPLAY +X display to use +.TP +.B \-\-sync +Make X calls synchronous +.TP +.B \-\-g\-fatal\-warnings +Make all warnings fatal + +.SS "Mozilla options" +.TP +.B \-h, \-help +Show summary of options. +.TP +.B \-v, \-version +Print the Thunderbird version. +.TP +\fB\-P\fR [\fIprofile\fR] +Start with \fIprofile\fR. When no profile is given, displays the Profile Manager. May require \fB\-no\-remote\fR, see below. +.TP +.B \-\-profile [\fIpath\fR] +Start with with [\fIprofile\fR] from the given [\fIpath\fR]. +.TP +.B \-\-migration +Start with migration wizard. May require \fB\-no\-remote\fR, see below. +.TP +.B \-\-ProfileManager +Start with profile manager. May require \fB\-no\-remote\fR, see below. +.TP +.B \-\-no\-remote +Don't connect to a running Thunderbird instance. Don't accept or send remote +commands. This option can be necessary in conjunction to several of the options +above, that won't have any effect when an Thunderbird instance is running unless +\fB\-no\-remote\fR is used at the same time. +.TP +.B \-\-new\-instance +Open a new instance instead of a new windows in the running instance. +.TP +\fB\-\-UILocale\fR \fIlocale\fR +Start with \fIlocale\fR resources as User Interface locale. By default, it is +guessed from environment and available locales for Thunderbird. +.TP +.B \-\-safe\-mode +Starts Thunderbird in safe mode, i.e. disabling all extensions and +showing a bit more debugging messages. +.TP +.B \-\-jsconsole +Start with Javascript Console +.TP +.B \-addressbook +Open the address book at startup. +.TP +.B \-compose +Compose a mail or news message. +.TP +.B \-mail +Open the mail folder view. +.TP +\fB\-mail\fR \fIURL\fR +Open the message specified by this \fIURL\fR. +.TP +.B \-news +Open the news client. +.TP +.B \-setDefaultMail +Set Thunderbird as the default mail client. +.TP +.B \-options +Open the options dialog. +.TP +.B \-file +Open the specified email file. + +.SH "DEBUGGING" +To debug Thunderbird, you need to run \fBrun-mozilla.sh\fR with the absolute path of thunderbird. +.PP +/usr/lib/thunderbird/run-mozilla.sh [\fIDEBUGOPTIONS\fR] /usr/lib/thunderbird/thunderbird-bin + +.SH "DEBUGOPTIONS" +A summary of the options for debugging \fBthunderbird\fR is included below. +.PP + +.TP +.B \-g, \-debug +Starts Thunderbird through a debugger (gdb by default). +.TP +\fB\-\-debugger\fR \fIprogram\fR +Use \fIprogram\fR (instead the default) as a debugger for Thunderbird. Implies \fB\-debug\fR. + +.SH "ENVIRONMENT" +\fIMOZILLA_DISABLE_PLUGINS\fR \- when set, totally disables loading plugins. + +.SH "FILES" +\fI/usr/bin/thunderbird\fR \- shell script wrapping +\fBthunderbird\-bin\fR +.br + +\fI/usr/lib/thunderbird/thunderbird\-bin\fR \- \fBthunderbird\fR +executable +.br + +.SH "EXAMPLES" +.SS "Some typical use case for starting Thunderbird from a console" +.sp +Starting Thunderbird without any extra options, useful to any messages from thunderbird in case something went not o.k.: +.sp +.if n \{\ +.RS 4 +.\} +.nf +thunderbird +.fi +.if n \{\ +.RE +.\} +.sp +Starting Thunderbird without any extensions or themes, useful if extensions may make some trouble: +.sp +.if n \{\ +.RS 4 +.\} +.nf +thunderbird \-\-safe-mode +.fi +.if n \{\ +.RE +.\} +.sp +Starting Thunderbird with a composing window: +.sp +.if n \{\ +.RS 4 +.\} +.nf +thunderbird \-compose +.fi +.if n \{\ +.RE +.\} +.sp +Starting Thunderbird with the default debugger: +.sp +.if n \{\ +.RS 4 +.\} +.nf +/usr/lib/thunderbird/run-mozilla.sh \-debug /usr/lib/thunderbird/thunderbird-bin +.fi +.if n \{\ +.RE +.\} +.sp +Starting Thunderbird with the specific debugger: +.sp +.if n \{\ +.RS 4 +.\} +.nf +/usr/lib/thunderbird/run-mozilla.sh \-\-debugger /foo/bar/debugger /usr/lib/thunderbird/thunderbird-bin +.fi +.if n \{\ +.RE +.\} + +.SH "BUGS" +To report a bug, please visit \fIhttp://bugzilla.mozilla.org/\fR and/or report bugs +to the Debian Bug Tracking System, as usual. + +.SH "AUTHORS" +.TP +.B The Mozilla Organization +.I http://www.mozilla.org/about.html diff --git a/thunderbird.NEWS b/thunderbird.NEWS new file mode 100644 index 0000000000..a204038c2b --- /dev/null +++ b/thunderbird.NEWS @@ -0,0 +1,87 @@ +thunderbird (1:68.2.2-1) unstable; urgency=medium + + Starting with version 68.2.2-1 src:thunderbird isn't building the binary + package calendar-google-provider any more. + + If you want or need to use this Add-On please install this extension from + + https://addons.thunderbird.net/en-GB/thunderbird/addon/provider-for-google-calendar/ + + (Please choose your preferred language!) + + The removal of this Add-On from the Thunderbird source was discussed within + this issue: + + https://bugzilla.mozilla.org/show_bug.cgi?id=1584614 + + -- Carsten Schoenert Sun, 10 Nov 2019 11:07:00 +0100 + +thunderbird (1:60.0-3) unstable; urgency=medium + + intl.locale.matchOS is replaced by intl.locale.requested + + Thunderbird has taken the locale from the user session by using the + preference 'intl.locale.matchOS' up until version 57. + This preference is replaced by 'intl.locale.requested' since version 58. + + Thunderbird is detecting (again) the locale from the system by using this + preference with an empty string as value. + Starting with this version Thunderbird is taking care of this possibility + by adding this preference to the system wide configuration within + '/etc/thunderbird/pref/thunderbird.js. + + If you have used Thunderbird packages < 1:60.0-3 *and* you have used this + environment settings within your profile by adding a dedicated locale value + which is equal to the system language you can remove this and let + Thunderbird pick up the locale from the system automatically. To do so + remove the following key completely from your local settings: + + intl.locale.requested + + More information can be found here + + https://bugzilla.mozilla.org/show_bug.cgi?id=1437480 + https://bugzilla.mozilla.org/show_bug.cgi?id=1413866 + + Please have also a look into README.Debian for a more in deep explanation, + especially section + 'Enable l10n languages in Thunderbird >= 1:60.0~b2'. + + -- Carsten Schoenert Wed, 5 Aug 2018 20:45:00 +0200 + +thunderbird (1:60.0~b2-1) experimental; urgency=medium + + thunderbird-l10n and lightning-l10n packages are known broken + + Due the modifications by upstream started with Thunderbird 59 related to the + needed changes for the WebExtensions the various l10n packages for + thunderbird itself but also for lightning are currently not working like + previously out of the box. + This is a known fact and mostly confirmed by upstream. + + By a manual workaround for the local profile it's possible to (re-)enable the + requested l10n language. Please have a look at the file README.Debian in the + section 'Enable l10n languages in Thunderbird >= 1:60.0~b2'. + + For more information on this issue you can visit + + https://bugzilla.mozilla.org/show_bug.cgi?id=1437480 + + -- Carsten Schoenert Sat, 7 Apr 2018 10:21:00 +0200 + +thunderbird (1:52.5.0-1) unstable; urgency=high + + The profile for AppArmor within Thunderbird is now disabled by default. + Since the activated Recommends for the apparmor package in recent + kernel-image packages it turns out there are to many things that simply not + working like before if Thunderbird is using the current AppArmor profile. + + Please read README.apparmor for getting more information about the + re-enabling of the AppArmor profile. + People who wants to help to improve the AppAprmor profile are appreciated. + + Take also a look at #882048 for the reason behind that decision. + + https://bugs.debian.org/882048 + + -- Carsten Schoenert Sun, 26 Nov 2017 12:45:00 +0200 diff --git a/thunderbird.bash-completion b/thunderbird.bash-completion new file mode 100644 index 0000000000..e61cb10946 --- /dev/null +++ b/thunderbird.bash-completion @@ -0,0 +1,65 @@ +# bash completion for thunderbird(1) -*- shell-script -*- +# +# Copyright (C) 2017 Carsten Schoenert + +_thunderbird() { +local cur prev OPTS FLAG_FIXMIME FLAG_SHOW_BACKUP +COMPREPLY=() +cur="${COMP_WORDS[COMP_CWORD]}" +prev="${COMP_WORDS[COMP_CWORD-1]}" +OPTS="--fixmime --help --show-backup -g --verbose" + +case $prev in + '--fixmime') + # Check if '--verbose' is already given, this is the only option that + # '--fixmime' should be combined + if [ ! $(compgen -W "${COMP_WORDS[*]}" -- "--verbose") ]; then + COMPREPLY=( $(compgen -W "--verbose" -- $cur) ) + fi + return 0 + ;; + + '--help'|'-g') + return 0 + ;; + + '--show-backup') + # Check if '--verbose' is already given, this is the only option that + # --show-backup should be combined + if [ ! $(compgen -W "${COMP_WORDS[*]}" -- "--verbose") ]; then + COMPREPLY=( $(compgen -W "--verbose" -- $cur) ) + fi + return 0 + ;; + + '--verbose') + FLAG_FIXMIME="" + FLAG_SHOW_BACKUP="" + + # Check if '--fixmime' is already given + if [ $(compgen -W "${COMP_WORDS[*]}" -- "--fixmime") ]; then + # Yes, we have seen '-fixmime' + FLAG_FIXMIME=1 + fi + + # Check if '--show-backup' is already given + if [ $(compgen -W "${COMP_WORDS[*]}" -- "--show-backup") ]; then + # Yes, we have seen '--show-backup' + FLAG_SHOW_BACKUP=1 + fi + + if [ "$FLAG_FIXMIME" != "1" ] && [ "$FLAG_SHOW_BACKUP" != "1" ]; then + COMPREPLY=( $(compgen -W "--fixmime --show-backup" -- $cur) ) + fi + return 0 + ;; + +esac + + COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) ) + return 0 + +} && +complete -F _thunderbird thunderbird + +# ex: ts=4 sw=4 et filetype=sh diff --git a/thunderbird.desktop b/thunderbird.desktop new file mode 100644 index 0000000000..966dbd1463 --- /dev/null +++ b/thunderbird.desktop @@ -0,0 +1,115 @@ +[Desktop Entry] +Name=Thunderbird +Comment=Read/Write Mail/News with Thunderbird +GenericName=Mail Client +Exec=/usr/bin/thunderbird %u +Terminal=false +X-MultipleArgs=false +Type=Application +Version=1.0 +Icon=thunderbird +Categories=Network;Email;News;GTK; +MimeType=message/rfc822;x-scheme-handler/mailto;text/calendar;text/x-vcard; +StartupWMClass=Thunderbird +StartupNotify=true +Name[ast]=Veceru de corréu Thunderbird +Name[ca]=Client de correu Thunderbird +Name[cs]=Poštovní klient Thunderbird +Name[da]=Mozilla Thunderbird - e-post/nyhedsgruppe +Name[de]=Thunderbird E-Mail und Nachrichten +Name[el]=Ηλεκτρονική αλληλογραφία Thunderbird +Name[es]=Cliente de correo Thunderbird +Name[fi]=Thunderbird-sähköposti +Name[fr]=Messagerie Thunderbird +Name[gl]=Cliente de correo Thunderbird +Name[he]=Mozilla Thunderbird דוא״ל/חדשות +Name[hr]=Mozilla Thunderbird e-pošta/novosti +Name[hu]=Thunderbird levelezőkliens +Name[it]=Email Mozilla Thunderbird +Name[ja]=Thunderbird電子メールクライアント +Name[ko]=Mozilla Thunderbird +Name[nl]=Mozilla Thunderbird e-mail/nieuws +Name[pl]=Klient poczty Thunderbird +Name[pt_BR]=Cliente de E-mail Thunderbird +Name[ru]=Почтовый клиент Thunderbird +Name[sk]=Thunderbird - poštový klient +Name[sv]=E-postklienten Thunderbird +Name[ug]=Mozilla Thunderbird ئېلخەت/خەۋەر +Name[uk]=Поштова програма Thunderbird +Name[vi]=Trình điện thư Mozilla Thunderbird +Name[zh_CN]=Thunderbird 邮件/新闻 +Name[zh_TW]=Thunderbird 郵件 +Comment[ast]=Lleer y escribir corréu electrónicu +Comment[ca]=Llegiu i escriviu correu +Comment[cs]=Čtení a psaní pošty +Comment[da]=Læs/skriv post/nyheder med Thunderbird +Comment[de]=E-Mails und Nachrichten mit Thunderbird lesen und schreiben +Comment[el]=Διαβάστε και γράψτε γράμματα με το Mozilla Thunderbird +Comment[es]=Lea y escriba correos y noticias con Thunderbird +Comment[fi]=Lue ja kirjoita sähköposteja +Comment[fr]=Lire et écrire des courriels +Comment[gl]=Lea e escriba correo electrónico +Comment[he]=קריאה/כתיבה של דוא״ל/חדשות באמצעות Mozilla Thunderbird +Comment[hr]=Čitajte/šaljite e-poštu s Thunderbird +Comment[hu]=Levelek írása és olvasása a Thunderbirddel +Comment[it]=Per leggere e scrivere email +Comment[ja]=メールの読み書き +Comment[ko]=Mozilla Thunderbird 메일/뉴스 읽기 및 쓰기 클라이언트 +Comment[nl]=E-mail/nieuws lezen en schrijven met Mozilla Thunderbird +Comment[pl]=Czytanie i wysyłanie e-maili +Comment[pt_BR]=Leia e escreva suas mensagens +Comment[ru]=Читайте и пишите письма +Comment[sk]=Čítajte a píšte poštu pomocou programu Thunderbird +Comment[sv]=Läs och skriv e-post +Comment[ug]=ئېلخەت ۋە خەۋەرلەرنى Mozilla Thunderbird دا كۆرۈش ۋە يېزىش +Comment[uk]=Читання та написання листів +Comment[vi]=Đọc và soạn thư điện tử +Comment[zh_CN]=阅读邮件或新闻 +Comment[zh_TW]=以 Mozilla Thunderbird 讀寫郵件或新聞 +GenericName[ast]=Client de correu +GenericName[ca]=Client de correu +GenericName[cs]=Poštovní klient +GenericName[da]=Postklient +GenericName[de]=E-Mail-Anwendung +GenericName[el]=Λογισμικό αλληλογραφίας +GenericName[es]=Cliente de correo +GenericName[fi]=Sähköpostiohjelma +GenericName[fr]=Client de messagerie +GenericName[gl]=Cliente de correo electrónico +GenericName[he]=לקוח דוא״ל +GenericName[hr]=Klijent e-pošte +GenericName[hu]=Levelezőkliens +GenericName[it]=Client email +GenericName[ja]=電子メールクライアント +GenericName[ko]=메일 클라이언트 +GenericName[nl]=E-mailprogramma +GenericName[pt_BR]=Cliente de E-mail +GenericName[ru]=Почтовый клиент +GenericName[sk]=Poštový klient +GenericName[ug]=ئېلخەت دېتالى +GenericName[uk]=Поштова програма +GenericName[vi]=Phần mềm khách quản lý thư điện tử +GenericName[zh_CN]=邮件新闻客户端 +GenericName[zh_TW]=郵件用戶端 +Keywords=EMail;E-mail;Contact;Addressbook;News; +Keywords[ast]=Corréu;Corréu-e;Noticies;Discusiones;Mensaxes;Canales;RSS +Keywords[ca]=Correu;Email;E-mail;Mailing;Llistes;Notícies;RSS +Keywords[cs]=Email;E-mail;Pošta;Elektronická pošta;Diskusní skupiny;Čtečka;RSS +Keywords[da]=Email;E-mail;Epost;E-post;Ebrev;E-brev;Kontakt;Adressebog;Nyheder; +Keywords[de]=Mail;E-Mail;Newsgroup;Nachrichten;Feed;RSS;Post;News;Usenet;online;lesen;schreiben +Keywords[el]=Email;E-mail;Newsgroup;Feed;RSS;ημαιλ;Αλληλογραφία;Ροή;ΡΣΣ;Συζητήσεις;Γράμματα +Keywords[es]=Email;Correo electrónico;Noticias;Discusiones;Mensajes;Canales;RSS +Keywords[fi]=Mail;E-Mail;Email;Newsgroup;Feed;RSS;posti;sähköposti;maili;meili;Usenet;uutisryhmät;syöte +Keywords[fr]=Mails;Mels;E-Mails;Emails;Courriels;Courriers;Newsgroup;Feed;RSS;Poster;Thunderbird;Lire;Écrire +Keywords[he]=דוא"ל;דוא״ל;מייל;אי-מייל;אימייל;הודעות;מוזילה;תאנדרבירד;ת׳אנדרבירד;ת'אנדרבירד;ת׳אנדרברד;ת'אנדרברד;דואל; +Keywords[hr]=email;e-mail;e-pošta;pošta;RSS +Keywords[hu]=Email;E-mail;Levél;Levelezés;Hírcsoport;Feed;Hírforrás;RSS +Keywords[it]=Email;Mail;Posta;Newsgroup;Feed;RSS +Keywords[is]=tölvupóstur;rafpóstur;fréttir;fréttahópar;samtöl;skilaboð;fréttastraumar;RSS +Keywords[ja]=Eメール;イーメール;mail;e-mail;email;メール;電子メール;ニュースグループ;ネットニュース;RSS;フィードリーダー;書く;読む;Mozilla +Keywords[nl]=Email;E-mail;Newsgroup;Feed;RSS;Nieuwsgroep;Post +Keywords[ru]=Email;E-mail;Newsgroup;Feed;RSS;почта;письма;новости;фиды +Keywords[sk]=Email;E-mail;Elektronická pošta;Diskusné skupiny;Čítačka kanálov;RSS +Keywords[uk]=Email;E-mail;Newsgroup;Feed;RSS;пошта;новини;подачі;стрічка +Keywords[vi]=Mail;E-Mail;Email;Newsgroup;Feed;RSS;Thư điện tử;Gửi thư +Keywords[zh_CN]=Mail;E-Mail;Email;Newsgroup;Feed;RSS;电子;邮件;新闻;Thunderbird;tb;雷鸟;电邮;邮箱;阅读器; diff --git a/thunderbird.dirs b/thunderbird.dirs new file mode 100644 index 0000000000..954eb16bb4 --- /dev/null +++ b/thunderbird.dirs @@ -0,0 +1,13 @@ +etc/apparmor.d +etc/apparmor.d/disable +usr/bin +usr/share/icons/hicolor/16x16/apps +usr/share/icons/hicolor/22x22/apps +usr/share/icons/hicolor/24x24/apps +usr/share/icons/hicolor/32x32/apps +usr/share/icons/hicolor/48x48/apps +usr/share/icons/hicolor/64x64/apps +usr/share/icons/hicolor/128x128/apps +usr/share/icons/hicolor/256x256/apps +usr/share/icons/hicolor/scalable/apps +usr/share/pixmaps diff --git a/thunderbird.docs b/thunderbird.docs new file mode 100644 index 0000000000..3ae5a63a54 --- /dev/null +++ b/thunderbird.docs @@ -0,0 +1 @@ +debian/README.apparmor diff --git a/thunderbird.install b/thunderbird.install new file mode 100755 index 0000000000..64805b6e12 --- /dev/null +++ b/thunderbird.install @@ -0,0 +1,33 @@ +#!/usr/bin/dh-exec +debian/logo/thunderbird/mailicon16.png => usr/share/icons/hicolor/16x16/apps/thunderbird.png +debian/logo/thunderbird/mailicon22.png => usr/share/icons/hicolor/22x22/apps/thunderbird.png +debian/logo/thunderbird/mailicon24.png => usr/share/icons/hicolor/24x24/apps/thunderbird.png +debian/logo/thunderbird/mailicon32.png => usr/share/icons/hicolor/32x32/apps/thunderbird.png +debian/logo/thunderbird/mailicon48.png => usr/share/icons/hicolor/48x48/apps/thunderbird.png +debian/logo/thunderbird/mailicon64.png => usr/share/icons/hicolor/64x64/apps/thunderbird.png +debian/logo/thunderbird/mailicon128.png => usr/share/icons/hicolor/128x128/apps/thunderbird.png +debian/logo/thunderbird/mailicon256.png => usr/share/icons/hicolor/256x256/apps/thunderbird.png +debian/thunderbird-wrapper.sh => usr/bin/thunderbird + +debian/account-autoconfig/* usr/share/thunderbird/isp +debian/logo/thunderbird/thunderbird.svg usr/share/icons/hicolor/scalable/apps +debian/thunderbird.desktop usr/share/applications +debian/thunderbird.js etc/thunderbird/pref +debian/thunderbird-wrapper-helper.sh usr/lib/thunderbird +debian/tmp/usr/lib/thunderbird/fonts +debian/tmp/usr/lib/thunderbird/*.ini +debian/tmp/usr/lib/thunderbird/blocklist.xml +debian/tmp/usr/lib/thunderbird/chrome usr/share/thunderbird +debian/tmp/usr/lib/thunderbird/defaults/messenger usr/share/thunderbird/defaults +debian/tmp/usr/lib/thunderbird/defaults/pref usr/share/thunderbird/defaults +debian/tmp/usr/lib/thunderbird/dependentlibs.list +debian/tmp/usr/lib/thunderbird/thunderbird* +debian/tmp/usr/lib/thunderbird/gtk2 +debian/tmp/usr/lib/thunderbird/isp usr/share/thunderbird +debian/tmp/usr/lib/thunderbird/lib* +debian/tmp/usr/lib/thunderbird/omni.ja usr/share/thunderbird +debian/tmp/usr/lib/thunderbird/plugin-container +debian/tmp/usr/lib/thunderbird/removed-files +#[amd64 armel armhf i386] debian/tmp/usr/lib/thunderbird/Throbber-small.gif +#[amd64 armel armhf i386] debian/tmp/usr/lib/thunderbird/crashreporter +debian/vendor.js usr/share/thunderbird/defaults/pref diff --git a/thunderbird.js b/thunderbird.js new file mode 100644 index 0000000000..ad5c492621 --- /dev/null +++ b/thunderbird.js @@ -0,0 +1,42 @@ +// This is the Debian specific preferences file for Mozilla Thunderbird +// You can make any change in here, it is the purpose of this file. +// You can, with this file and all files present in the directory +// +// /etc/thunderbird/pref directory +// +// override any preference that is present in the directory +// +// /usr/lib/thunderbird/defaults/pref +// +// While your changes will be kept on upgrade if you modify files in +// /etc/thunderbird/pref, please note that they won't be kept if you +// do them in /usr/lib/thunderbird/defaults/pref. + +pref("extensions.update.enabled", true); + +// Use LANG environment variable to choose locale from system +// The old environment setting 'pref("intl.locale.matchOS", true);' is +// currently not working anymore. The new introduced setting +// 'intl.locale.requested' is now used for this. Setting an empty string is +// pulling the system locale into Thunderbird. +pref("intl.locale.requested", ""); + +// Disable default mail checking (gnome). +pref("mail.shell.checkDefaultMail", false); + +// Disable default mail client check +pref("mail.shell.checkDefaultClient", false); + +// if you are not using gnome +pref("network.protocol-handler.app.http", "x-www-browser"); +pref("network.protocol-handler.app.https", "x-www-browser"); + +// This setting is a workaround for some crashes inside the JS engine. +// By this Thunderbird will use more memory and acting slower as the sharing +// memory between interacting JS files is disabled. +pref ("javascript.options.baselinejit", false); + +// Uncomment the follwing setting if you want to have a extra mail header field +// for X-Debbugs-Cc, only needed in case you have to work with the Debian +// Bug Tracking System more deeply +//pref("mail.compose.other.header", "X-Debbugs-Cc"); diff --git a/thunderbird.links b/thunderbird.links new file mode 100644 index 0000000000..875aff054b --- /dev/null +++ b/thunderbird.links @@ -0,0 +1,11 @@ +/etc/thunderbird/pref usr/share/thunderbird/defaults/syspref +/usr/share/hunspell usr/lib/thunderbird/dictionaries +# don't link /usr/bin/thunderbird -> /usr/lib/thunderbird/thunderbird +# we need to use a wrapper for Icedove user profile migration +#usr/lib/thunderbird/thunderbird usr/bin/thunderbird +usr/share/thunderbird/chrome usr/lib/thunderbird/chrome +usr/share/thunderbird/chrome/icons/default/default48.png usr/share/pixmaps/thunderbird.png +usr/share/thunderbird/defaults usr/lib/thunderbird/defaults +usr/share/thunderbird/isp usr/lib/thunderbird/isp +usr/share/thunderbird/omni.ja usr/lib/thunderbird/omni.ja +usr/lib/thunderbird/thunderbird-bin usr/lib/thunderbird/thunderbird diff --git a/thunderbird.lintian-overrides b/thunderbird.lintian-overrides new file mode 100644 index 0000000000..04143ab4c6 --- /dev/null +++ b/thunderbird.lintian-overrides @@ -0,0 +1,13 @@ +# The embedded libjpeg is libjpeg-turbo, not libjpeg. +thunderbird: embedded-library usr/lib/thunderbird/libxul.so: libjpeg +# Upstream code is not ready to use system library +#thunderbird: embedded-library usr/lib/thunderbird/libxul.so: srtp +#thunderbird: embedded-library usr/lib/thunderbird/libxul.so: libtheora +# The embedded libpng is patched for APNG support +thunderbird: embedded-library usr/lib/thunderbird/libxul.so: libpng + +## Uncomment entries if NSPR4 and/or NSS3 are not available in the archive +# NSPR isn't packaged in the required version yet +#thunderbird: embedded-library usr/lib/thunderbird/libnspr4.so: nspr +# NSS isn't packaged in the required version yet +#thunderbird: embedded-library usr/lib/thunderbird/libnss3.so: nss diff --git a/thunderbird.maintscript b/thunderbird.maintscript new file mode 100644 index 0000000000..2d9e3f514f --- /dev/null +++ b/thunderbird.maintscript @@ -0,0 +1,3 @@ +# remove the old Icedove configfile +# command conffile start-version package +rm_conffile /etc/icedove/pref/icedove.js 1:45.7.1-2~ icedove diff --git a/thunderbird.manpages b/thunderbird.manpages new file mode 100644 index 0000000000..52afef8193 --- /dev/null +++ b/thunderbird.manpages @@ -0,0 +1 @@ +debian/thunderbird.1 diff --git a/thunderbird.pc b/thunderbird.pc new file mode 100644 index 0000000000..39ee10e599 --- /dev/null +++ b/thunderbird.pc @@ -0,0 +1,12 @@ +prefix=/usr +sdkdir=${prefix}/lib/thunderbird-devel/ +libdir=${sdkdir}lib +includedir=${sdkdir}include +idldir=${sdkdir}idl + +Name: icedove +Description: Thunderbird Development Files +Version: @Version@ +Requires: nspr >= 4.8.2 +Libs: -L${libdir} -lxpcomglue_s -lxul -lmozalloc -lldap60 -lprldap60 +Cflags: -I${includedir} diff --git a/thunderbird.postinst b/thunderbird.postinst new file mode 100644 index 0000000000..0ce7686497 --- /dev/null +++ b/thunderbird.postinst @@ -0,0 +1,98 @@ +#!/bin/sh +# postinst script for thunderbird +# +# see: dh_installdeb(1) + +set -e +#set -x +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-remove' +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + +ICEDOVE_PREF=/etc/icedove/pref +THUNDERBIRD_PREF=/etc/thunderbird/pref +THUNDERBIRD_LIBDIR=/usr/lib/thunderbird +TO_DELETE=0 + +case "$1" in + configure) + # The users might have put some additional files/dirs into the old + # preferences folder '/etc/icedove/pref/', we need to move those files + # into '/etc/thunderbird/pref/' so Thunderbird is picking up those + # configurations as well. + if [ -d ${ICEDOVE_PREF} ]; then + # Check if we have to move files and/or directories. + if [ `ls -a "${ICEDOVE_PREF}" | wc -l` -gt 2 ]; then + # Yes, we found existing data to move! + echo "Moving old Icedove related preferences files ..." + mv ${ICEDOVE_PREF}/* /etc/thunderbird/pref/ + if [ "$?" != "0" ]; then + echo "Something went wrong while moving old Icedove preferences files!" + echo "Please validate files at '/etc/thunderbird/pref' !" + else + # Moving files went fine, we can delete ${ICEDOVE_PREF}. + TO_DELETE=1 + fi + else + # There was nothing, marking folder ${ICEDOVE_PREF} for deleting. + TO_DELETE=1 + fi + if [ "${TO_DELETE}" -eq 1 ]; then + # removing old empty folder /etc/icedove/profile if still existing (last used in squeeze) + if [ -d /etc/icedove/profile ]; then + rmdir /etc/icedove/profile || true + fi + echo "Removing old Icedove pref directory ..." + rmdir ${ICEDOVE_PREF} || true + rmdir /etc/icedove || true + rm -f ${THUNDERBIRD_PREF}/icedove.js.dpkg-remove || true + if [ -f ${THUNDERBIRD_PREF}/icedove.js ]; then + # If dpkg-mainthelper-script wasn't faster and hasn't already removed icedove.js ... + if [ "`md5sum /etc/thunderbird/pref/icedove.js`" = "f7d035193281c76a304391fb07dfd590" ] || \ + [ "`md5sum /etc/thunderbird/pref/icedove.js`" = "049566d25ab2630db3b705197b96f47e" ] ; then + # Remove the file icedove.js, it's the from previous installed Icedove package. + # f7d035193281c76a304391fb07dfd590 <= 1:45.3.0-1 + # 049566d25ab2630db3b705197b96f47e == 1:45.5.1-1 + rm ${THUNDERBIRD_PREF}/icedove.js || true + else + # We have a user modified file icedove.js. + mv ${THUNDERBIRD_PREF}/icedove.js ${THUNDERBIRD_PREF}/icedove.js.dpkg-backup || true + fi + fi + fi + fi + # Disable apparmor on new installations and when we're upgrading from + # a version that had it enabled by default + if test -n "$2" && dpkg --compare-versions "$2" gt "1:52.5.0-1~"; then + : # Leave the disable/ symlink at users choice if + # upgrading from a version that ships the symlink + else + mkdir -p /etc/apparmor.d/disable + [ -f /etc/apparmor.d/disable/usr.bin.thunderbird ] || ln -s /etc/apparmor.d/usr.bin.thunderbird /etc/apparmor.d/disable/usr.bin.thunderbird + fi + ;; + + configure|abort-upgrade) + touch ${THUNDERBID_LIBDIR}/.autoreg + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/thunderbird.prerm b/thunderbird.prerm new file mode 100644 index 0000000000..81a5211a13 --- /dev/null +++ b/thunderbird.prerm @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +LIBDIR=/usr/lib/thunderbird + +if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ] || [ "$1" = upgrade ]; then + rm -f $LIBDIR/.autoreg +fi + +#DEBHELPER# diff --git a/vendor.js b/vendor.js new file mode 100644 index 0000000000..1a5daea0a2 --- /dev/null +++ b/vendor.js @@ -0,0 +1,2 @@ +// Forbid application updates +pref("app.update.enabled", false, locked); diff --git a/watch b/watch new file mode 100644 index 0000000000..37c9ae9512 --- /dev/null +++ b/watch @@ -0,0 +1,3 @@ +version=3 +opts=dversionmangle=s/^(\d\.[\d\.]+)\+dfsg$/$1/ \ +https://download-origin.cdn.mozilla.net/pub/thunderbird/releases/(\d{2}\.[\d\.]+)/source/thunderbird-([\d\.]+).source\.tar\.xz debian python -B debian/repack.py diff --git a/xpi-pack.sh b/xpi-pack.sh new file mode 100755 index 0000000000..555e6239fc --- /dev/null +++ b/xpi-pack.sh @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright (c) 2008 Alexander Sack, Sasa Bodiroza +# Description: Script to pack indir to xpifile +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +# The script searches indir for unpacked jar files, which must be located in +# ./input_dir/path/to/file.jar!/ dir. It will jar it up to +# ./input_dir/path/to/file.jar, and then remove the contents of unpacked dir. +# After that, it will zip up the contents of indir to xpi file. +# Example: xpi-pack ubufox.out ubufox-ver.xpi + +INDIR=$1; +XPIFILE=$2; + +usage() { + echo "$0 - Script to produce XPI file from input directory." + echo + echo "The output XPI file is placed in top-level of the input directory."; + echo "To place it somewhere else, provide relative or absolute path to the"; + echo "output XPI file." + echo + echo "To run it call:"; + echo "$ $0 input_directory output_xpi_file" + echo + echo " input_directory - directory with the XPI source tree"; + echo " output_xpi_file - name of the produced file"; + exit 1; +} + +if [ "$1" = "--help" -o "$1" = "-h" ] ; then + usage +fi; + +if [ -z $INDIR ] ; then + echo "Missing input directory." + echo + usage; +fi; +if [ -z $XPIFILE ] ; then + echo "Missing XPI name." + echo + usage; +fi; +if [ ! -d $INDIR ] ; then + echo "E: Input directory doesn't exist." + echo + usage; +fi; + +START_DIR=`pwd`; +PACK_JAR_PATHS=""; +cd $INDIR; +for JAR_DIR in `find . -type d -name '*.jar\!'` ; do + JAR_FILE=`echo $JAR_DIR | sed "s/jar\!$/jar/"`; + ABS_JAR_PATH=`cd $JAR_DIR ; pwd`; + ABS_JAR_FILE=`echo $ABS_JAR_PATH | sed "s/jar\!$/jar/"`; + ABS_CUR_DIR=`pwd`; + cd $ABS_JAR_PATH; + echo "Packing $JAR_FILE"; + TZ=UTC zip -q -X -r $ABS_JAR_FILE .; + cd $ABS_CUR_DIR; + PACK_JAR_PATHS="$ABS_JAR_FILE $PACK_JAR_PATHS"; + rm -rf $ABS_JAR_PATH; +done; +echo "Packing $XPIFILE"; +TZ=UTC zip -q -X -r $START_DIR/$XPIFILE * -x debian/\* temp-*/\*; +[ -f $START_DIR/$XPIFILE ] && XPIDIR=`dirname $START_DIR/$XPIFILE` +ABS_XPIDIR=`cd $XPIDIR; pwd`; +echo "Packed XPI file. It is located in $ABS_XPIDIR"; +for JAR_PATH in $PACK_JAR_PATHS ; do + echo "Unpacking and removing $JAR_PATH"; + TZ=UTC unzip -q $JAR_PATH -d $JAR_PATH!; + rm -f $JAR_PATH; +done; +cd $START_DIR; -- 2.30.2

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 literal 0 HcmV?d00001 diff --git a/logo/thunderbird/mailicon24.png b/logo/thunderbird/mailicon24.png new file mode 100644 index 0000000000000000000000000000000000000000..5afa52eb4e081b80ca88a74544567853fcefc4bf GIT binary patch literal 1514 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 literal 0 HcmV?d00001 diff --git a/logo/thunderbird/mailicon32.png b/logo/thunderbird/mailicon32.png new file mode 100644 index 0000000000000000000000000000000000000000..e1a2837376e71d8cd016d32e415b1ee22e47b2e5 GIT binary patch literal 2230 zcmV;n2ub&eP)csw(AJ*Ph=2?;nPmUuOz@6OEmzUMt>&UbaLU>dsipS>-5XkddsJobc&#k>Bu zab-B2{HY|)XV8jQj1?dF=-x0taa)ibkWqX_RahwJeB%_tQV>M0KcUM(w~lzh3X9Jj ze(Glb3p3Dh*JJgy9T#mUo@@`x0f840lmh}cBy>Z9a!BBYXg5HGK9(04rK3sd`S;Dd zwCVnHtrTBfO%IJL#iJE6LYS}AYvAw8{)emWiLP(O_UEQ4i|`|`gHm!XeEfs zOA3V6G}R7`LYQiYR6~l; z4Hz%var2|p`#x2nqA(E1Gq&m{z4_G5OroNQvTyJ&y@PFuxg5_Gxp;=) z8!H;oK}cVJp1$5O2Kq}BOMbLwL4{Br$blF2e7<9RwR6ddfGLAJDzhLX>gyIZ+*N&RPcJrG5j{@&yC z_2lU99^s*~OMg0zCfoA1L?2G@s{=Wb$MWcE8`}nHfmA0A z7$h;GnDb)`VP9p0q&fkKxDCL{i!=QCr4gREbs-67ie5j5md;9G2~9i<5QPvK7f1!t zszf!EM<#5dxU*JjXh8_v({2fi=FH^2WfHeEF>N@&g0w|Lb`mQtuwqnVTwoDm#es1b z@@0agGgk^h6M&m^7#%NvVq(!E-hcmnq9~dcJeSL{ud@@|cd?ukV5ee2j+ap-4-*-5 z-bberDTy($`Xr@AO=Y?dWUmS80nRvav8 zP+^26BBH!U*k1%CF-j8IN?Ahdd`;4-dS*i#*(cj3l}bA*|KGb&*{rIKOW=inJESeB}P@5sH71} zR=~!9Fcl-1qPXa$Ez3Qp`jx$#za^6K>9^ce3bjEBSo6DADYyZgm^J1E*cdQi4R?h6hKOzhKU^&AdBU1OeG?2XKdrxQph1t*~+hbSe%) z63dP}wCCkJUr+!eT~9?V7q0G%(zRE5J>9diAB}QoZ+C9r>qpF<-TOrD_;Ba&z=+-4 z(v*rh_Bl_|_30S%s$*<)Q{x7hE#y`ktN-y5Bi)#OgaXm}+WnOgT>MtY)_U z>oEHd4nh&;-e_#7N~3S@cCY-~ z!uYOh0x7zVm9}RAHf`E8*S6y~O4Qo=nGJ2rmR~umdPe$Gt>Y6e-~GW>N<|N048~UY z7c^t{kD|sWf4Xbuj~+NVcFGyFwf%gJKR&X_&t)gO%iG$4vv$bl&70>KBX1H$-B3TX zq3x>WS2W!FK&ROIR{tk$2MDb(M&G~tu~8FGm(G#-Td=CXB~H% z9(?fO1+N^4Jvx-*>k=ZPwK{RCeRchl>7-ZwhcIR>hNp$r zt1zZk7;{h~yK@9Pqwx7!FgAYhFV%tMGSBjhb_UeR~S+2HU6 ztU%lPCo^`WYpcc@-!4=Q)Cd(`XQF8D{^xHydOrF82jaZpq?5ejYXATM07*qoM6N<$ Ef*O)EoB#j- literal 0 HcmV?d00001 diff --git a/logo/thunderbird/mailicon48.png b/logo/thunderbird/mailicon48.png new file mode 100644 index 0000000000000000000000000000000000000000..f3fe3ee834db66dec38f0b5310af9d39218e320f GIT binary patch literal 3781 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 literal 0 HcmV?d00001 diff --git a/logo/thunderbird/mailicon512.png b/logo/thunderbird/mailicon512.png new file mode 100644 index 0000000000000000000000000000000000000000..cff71b60fed6c2c551110cbd25486f46b26cc9b3 GIT binary patch literal 75482 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 B9ozr_ literal 0 HcmV?d00001 diff --git a/logo/thunderbird/mailicon64.png b/logo/thunderbird/mailicon64.png new file mode 100644 index 0000000000000000000000000000000000000000..01d41ada298e3b99c2c4806ff0cba02190baa4fe GIT binary patch literal 5506 zcmV-|6@BW7P)emZ^XcHP@m_5J>q`u*yT6qj2>)Rup2S|f?R4SIO+ zKVJBQ51+d1bDoE&%Qf(wPaZ8D8H)X`%LZR`XU_CVSIYxI&DF>Ku2b2U{``)f%Qf%$ z%4H#7>%TPLXG8a0mrNIg@4l^FY1MDJ(#roMsbSxi%>IrfM;2I1q4i?U1!3RHB5JJ-9WE1Mg$UFP zp!3(0`joY38=^yt5{IDr(CT?rT=uPF58ra|Qmq*-5dj-M^MgAoKeFLbRaj7#2Rbci zJ0s}PK0=GO5pZXGoY52J@-yj_3B&J(zW)~|e{}oM#jgFL2v~FH_wGcQZ&cl~W@Ef& z_5>gW-#?6}?moQZ6EB?i5a%Mx zKmE_OhLCKUw~ne_bP}XGG~5Q5sMb&nu^T-GUkYJ`5e9a|BNC5els^G@K